From c13adc31a6002f028991e790e41262644dd4f259 Mon Sep 17 00:00:00 2001 From: John Nunley Date: Wed, 20 Dec 2023 19:28:04 -0800 Subject: [PATCH] Set the listener slot to None after finishing Signed-off-by: John Nunley --- src/lib.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 } }