diff --git a/src/lib.rs b/src/lib.rs index 3dfc5e8..a197860 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -458,7 +458,11 @@ impl<'a, 'evl> Strategy<'evl> for NonBlocking<'a> { event_listener: &mut Option, context: &mut Self::Context, ) -> Poll { - Pin::new(event_listener.as_mut().expect("`event_listener` should never be `None`")).poll(context) + let poll = Pin::new(event_listener.as_mut().expect("`event_listener` should never be `None`")).poll(context); + if poll.is_ready() { + *event_listener = None; + } + poll } }