summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-02-16 11:31:37 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-02-16 11:31:37 +0100
commit09cf0b7af306ba92d2ba930bd871ee9733f8a4b9 (patch)
tree1daa9a7ef28bce862daf50046ff8e2bc03b32908
parent75d8de93ae48277bdbcb0129241530632d13e850 (diff)
downloadiced-09cf0b7af306ba92d2ba930bd871ee9733f8a4b9.tar.gz
iced-09cf0b7af306ba92d2ba930bd871ee9733f8a4b9.tar.bz2
iced-09cf0b7af306ba92d2ba930bd871ee9733f8a4b9.zip
Enter executor context only on `Recipe` creation
-rw-r--r--futures/src/runtime.rs13
-rw-r--r--winit/src/application.rs5
2 files changed, 12 insertions, 6 deletions
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<Hasher, Event, Message>,
) {
- 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