summaryrefslogtreecommitdiffstats
path: root/futures/src/executor
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--futures/src/backend/native/thread_pool.rs (renamed from futures/src/executor/thread_pool.rs)7
-rw-r--r--futures/src/backend/null.rs (renamed from futures/src/executor/null.rs)7
-rw-r--r--futures/src/executor.rs42
-rw-r--r--futures/src/executor/async_std.rs18
-rw-r--r--futures/src/executor/smol.rs18
-rw-r--r--futures/src/executor/tokio.rs22
-rw-r--r--futures/src/executor/wasm_bindgen.rs15
7 files changed, 8 insertions, 121 deletions
diff --git a/futures/src/executor/thread_pool.rs b/futures/src/backend/native/thread_pool.rs
index a6c6168e..6e791533 100644
--- a/futures/src/executor/thread_pool.rs
+++ b/futures/src/backend/native/thread_pool.rs
@@ -1,12 +1,11 @@
-use crate::Executor;
-
+//! A `ThreadPool` backend.
use futures::Future;
-/// A thread pool runtime for futures.
+/// A thread pool executor for futures.
#[cfg_attr(docsrs, doc(cfg(feature = "thread-pool")))]
pub type ThreadPool = futures::executor::ThreadPool;
-impl Executor for futures::executor::ThreadPool {
+impl crate::Executor for futures::executor::ThreadPool {
fn new() -> Result<Self, futures::io::Error> {
futures::executor::ThreadPool::new()
}
diff --git a/futures/src/executor/null.rs b/futures/src/backend/null.rs
index 65e2e2df..e22e7921 100644
--- a/futures/src/executor/null.rs
+++ b/futures/src/backend/null.rs
@@ -1,12 +1,11 @@
-use crate::Executor;
-
+//! A backend that does nothing!
use futures::Future;
/// An executor that drops all the futures, instead of spawning them.
#[derive(Debug)]
-pub struct Null;
+pub struct Executor;
-impl Executor for Null {
+impl crate::Executor for Executor {
fn new() -> Result<Self, futures::io::Error> {
Ok(Self)
}
diff --git a/futures/src/executor.rs b/futures/src/executor.rs
index 23682f32..5ac76081 100644
--- a/futures/src/executor.rs
+++ b/futures/src/executor.rs
@@ -1,38 +1,5 @@
//! Choose your preferred executor to power a runtime.
-mod null;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "thread-pool"))]
-mod thread_pool;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "tokio"))]
-mod tokio;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "async-std"))]
-mod async_std;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "smol"))]
-mod smol;
-
-#[cfg(target_arch = "wasm32")]
-mod wasm_bindgen;
-
-pub use null::Null;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "thread-pool"))]
-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 = "async-std"))]
-pub use self::async_std::AsyncStd;
-
-#[cfg(all(not(target_arch = "wasm32"), feature = "smol"))]
-pub use self::smol::Smol;
-
-#[cfg(target_arch = "wasm32")]
-pub use wasm_bindgen::WasmBindgen;
-
+use crate::MaybeSend;
use futures::Future;
/// A type that can run futures.
@@ -43,12 +10,7 @@ pub trait Executor: Sized {
Self: Sized;
/// Spawns a future in the [`Executor`].
- #[cfg(not(target_arch = "wasm32"))]
- fn spawn(&self, future: impl Future<Output = ()> + Send + 'static);
-
- /// Spawns a local future in the [`Executor`].
- #[cfg(target_arch = "wasm32")]
- fn spawn(&self, future: impl Future<Output = ()> + 'static);
+ fn spawn(&self, future: impl Future<Output = ()> + MaybeSend + 'static);
/// Runs the given closure inside the [`Executor`].
///
diff --git a/futures/src/executor/async_std.rs b/futures/src/executor/async_std.rs
deleted file mode 100644
index 471be369..00000000
--- a/futures/src/executor/async_std.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-use crate::Executor;
-
-use futures::Future;
-
-/// An `async-std` runtime.
-#[cfg_attr(docsrs, doc(cfg(feature = "async-std")))]
-#[derive(Debug)]
-pub struct AsyncStd;
-
-impl Executor for AsyncStd {
- fn new() -> Result<Self, futures::io::Error> {
- Ok(Self)
- }
-
- fn spawn(&self, future: impl Future<Output = ()> + Send + 'static) {
- let _ = async_std::task::spawn(future);
- }
-}
diff --git a/futures/src/executor/smol.rs b/futures/src/executor/smol.rs
deleted file mode 100644
index deafd43a..00000000
--- a/futures/src/executor/smol.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-use crate::Executor;
-
-use futures::Future;
-
-/// A `smol` runtime.
-#[cfg_attr(docsrs, doc(cfg(feature = "smol")))]
-#[derive(Debug)]
-pub struct Smol;
-
-impl Executor for Smol {
- fn new() -> Result<Self, futures::io::Error> {
- Ok(Self)
- }
-
- fn spawn(&self, future: impl Future<Output = ()> + Send + 'static) {
- smol::spawn(future).detach();
- }
-}
diff --git a/futures/src/executor/tokio.rs b/futures/src/executor/tokio.rs
deleted file mode 100644
index c6a21cec..00000000
--- a/futures/src/executor/tokio.rs
+++ /dev/null
@@ -1,22 +0,0 @@
-use crate::Executor;
-
-use futures::Future;
-
-/// A `tokio` runtime.
-#[cfg_attr(docsrs, doc(cfg(feature = "tokio")))]
-pub type Tokio = tokio::runtime::Runtime;
-
-impl Executor for Tokio {
- fn new() -> Result<Self, futures::io::Error> {
- tokio::runtime::Runtime::new()
- }
-
- fn spawn(&self, future: impl Future<Output = ()> + Send + 'static) {
- let _ = tokio::runtime::Runtime::spawn(self, future);
- }
-
- fn enter<R>(&self, f: impl FnOnce() -> R) -> R {
- let _guard = tokio::runtime::Runtime::enter(self);
- f()
- }
-}
diff --git a/futures/src/executor/wasm_bindgen.rs b/futures/src/executor/wasm_bindgen.rs
deleted file mode 100644
index 94d694c8..00000000
--- a/futures/src/executor/wasm_bindgen.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-use crate::Executor;
-
-/// A `wasm-bindgen-futures` runtime.
-#[derive(Debug)]
-pub struct WasmBindgen;
-
-impl Executor for WasmBindgen {
- fn new() -> Result<Self, futures::io::Error> {
- Ok(Self)
- }
-
- fn spawn(&self, future: impl futures::Future<Output = ()> + 'static) {
- wasm_bindgen_futures::spawn_local(future);
- }
-}