From 0cfa98566ec6c53892b812e897f6fd6aa5cda413 Mon Sep 17 00:00:00 2001 From: Nikolay Kim Date: Sun, 7 May 2017 21:17:57 -0700 Subject: [PATCH] drop inner borrow before dropping task --- src/reactor/mod.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/reactor/mod.rs b/src/reactor/mod.rs index 44dbf6e4a..c73108e0b 100644 --- a/src/reactor/mod.rs +++ b/src/reactor/mod.rs @@ -364,6 +364,7 @@ impl Core { }; drop(inner); let res = CURRENT_LOOP.set(self, || task.poll_future(wake)); + let _task_to_drop; inner = self.inner.borrow_mut(); match res { Ok(Async::NotReady) => { @@ -372,9 +373,10 @@ impl Core { } Ok(Async::Ready(())) | Err(()) => { - inner.task_dispatch.remove(token).unwrap(); + _task_to_drop = inner.task_dispatch.remove(token).unwrap(); } } + drop(inner); } fn consume_timeouts(&mut self, now: Instant) {