diff options
author | 2020-11-25 04:24:44 +0100 | |
---|---|---|
committer | 2020-11-25 04:24:44 +0100 | |
commit | 87c9df294c79d73ff67a8d9a036cf9ddff24c52f (patch) | |
tree | 167a3a63519d20e67cf227441b938d8a9b0b584d /futures/src/executor | |
parent | 8f081bad7756e16a4eb0ca4dcb1144fc47de5e9b (diff) | |
parent | 782dd2f5222bfef5e12aa576a821da21126505b7 (diff) | |
download | iced-87c9df294c79d73ff67a8d9a036cf9ddff24c52f.tar.gz iced-87c9df294c79d73ff67a8d9a036cf9ddff24c52f.tar.bz2 iced-87c9df294c79d73ff67a8d9a036cf9ddff24c52f.zip |
Merge pull request #595 from valbendan/master
upgrade tokio to latest version(v0.3)
Diffstat (limited to '')
-rw-r--r-- | futures/src/executor.rs | 6 | ||||
-rw-r--r-- | futures/src/executor/tokio.rs | 3 | ||||
-rw-r--r-- | futures/src/executor/tokio_old.rs | 21 |
3 files changed, 29 insertions, 1 deletions
diff --git a/futures/src/executor.rs b/futures/src/executor.rs index cbd34ee8..13abe430 100644 --- a/futures/src/executor.rs +++ b/futures/src/executor.rs @@ -7,6 +7,9 @@ mod thread_pool; #[cfg(all(not(target_arch = "wasm32"), feature = "tokio"))] mod tokio; +#[cfg(all(not(target_arch = "wasm32"), feature = "tokio_old"))] +mod tokio_old; + #[cfg(all(not(target_arch = "wasm32"), feature = "async-std"))] mod async_std; @@ -21,6 +24,9 @@ pub use thread_pool::ThreadPool; #[cfg(all(not(target_arch = "wasm32"), feature = "tokio"))] pub use self::tokio::Tokio; +#[cfg(all(not(target_arch = "wasm32"), feature = "tokio_old"))] +pub use self::tokio_old::TokioOld; + #[cfg(all(not(target_arch = "wasm32"), feature = "async-std"))] pub use self::async_std::AsyncStd; diff --git a/futures/src/executor/tokio.rs b/futures/src/executor/tokio.rs index a730bce8..c6a21cec 100644 --- a/futures/src/executor/tokio.rs +++ b/futures/src/executor/tokio.rs @@ -16,6 +16,7 @@ impl Executor for Tokio { } fn enter<R>(&self, f: impl FnOnce() -> R) -> R { - tokio::runtime::Runtime::enter(self, f) + let _guard = tokio::runtime::Runtime::enter(self); + f() } } diff --git a/futures/src/executor/tokio_old.rs b/futures/src/executor/tokio_old.rs new file mode 100644 index 00000000..d64729fa --- /dev/null +++ b/futures/src/executor/tokio_old.rs @@ -0,0 +1,21 @@ +use crate::Executor; + +use futures::Future; + +/// An old `tokio` runtime. +#[cfg_attr(docsrs, doc(cfg(feature = "tokio_old")))] +pub type TokioOld = tokio_old::runtime::Runtime; + +impl Executor for TokioOld { + fn new() -> Result<Self, futures::io::Error> { + tokio_old::runtime::Runtime::new() + } + + fn spawn(&self, future: impl Future<Output = ()> + Send + 'static) { + let _ = tokio_old::runtime::Runtime::spawn(self, future); + } + + fn enter<R>(&self, f: impl FnOnce() -> R) -> R { + tokio_old::runtime::Runtime::enter(self, f) + } +} |