diff --git a/futures/src/runtime.rs b/futures/src/runtime.rs index ede529dc..d204670b 100644 --- a/futures/src/runtime.rs +++ b/futures/src/runtime.rs @@ -95,11 +95,18 @@ where &mut self, subscription: Subscription, ) { - let futures = - self.subscriptions.update(subscription, self.sender.clone()); + let Runtime { + executor, + subscriptions, + sender, + .. + } = self; + + let futures = executor + .enter(|| subscriptions.update(subscription, sender.clone())); for future in futures { - self.executor.spawn(future); + executor.spawn(future); } } diff --git a/winit/src/application.rs b/winit/src/application.rs index 326dca25..82478107 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -126,7 +126,7 @@ pub trait Application: Sized { let (mut application, init_command) = runtime.enter(|| Self::new()); runtime.spawn(init_command); - let subscription = runtime.enter(|| application.subscription()); + let subscription = application.subscription(); runtime.track(subscription); let mut title = application.title(); @@ -255,8 +255,7 @@ pub trait Application: Sized { debug.update_finished(); } - let subscription = - runtime.enter(|| application.subscription()); + let subscription = application.subscription(); runtime.track(subscription); // Update window title