From 0b75c0c53d7708e42af5b72adb58f2261f7d9fe1 Mon Sep 17 00:00:00 2001 From: matthieugras <35115728+matthieugras@users.noreply.github.com> Date: Mon, 15 Jul 2019 17:56:20 +0200 Subject: [PATCH] executor: block thread when needed in block fn (#1303) Fix #1296 --- tokio-executor/src/enter.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tokio-executor/src/enter.rs b/tokio-executor/src/enter.rs index d09994c65..c10675fce 100644 --- a/tokio-executor/src/enter.rs +++ b/tokio-executor/src/enter.rs @@ -70,7 +70,7 @@ impl Enter { use std::task::Context; use std::task::Poll::Ready; - let park = ParkThread::new(); + let mut park = ParkThread::new(); let waker = park.unpark().into_waker(); let mut cx = Context::from_waker(&waker); @@ -82,6 +82,7 @@ impl Enter { if let Ready(v) = f.as_mut().poll(&mut cx) { return v; } + park.park().unwrap(); } } }