[−][src]Trait fibers::fiber::Spawn
The Spawn
trait allows for spawning fibers.
Required methods
fn spawn_boxed(&self, fiber: Box<dyn Future<Item = (), Error = ()> + Send>)
Spawns a fiber which will execute given boxed future.
Provided methods
fn spawn<F>(&self, fiber: F) where
F: Future<Item = (), Error = ()> + Send + 'static,
F: Future<Item = (), Error = ()> + Send + 'static,
Spawns a fiber which will execute given future.
fn spawn_fn<F, T>(&self, f: F) where
F: FnOnce() -> T + Send + 'static,
T: IntoFuture<Item = (), Error = ()> + Send + 'static,
T::Future: Send,
F: FnOnce() -> T + Send + 'static,
T: IntoFuture<Item = (), Error = ()> + Send + 'static,
T::Future: Send,
Equivalent to self.spawn(futures::lazy(|| f()))
.
fn spawn_monitor<F, T, E>(&self, f: F) -> Monitor<T, E> where
F: Future<Item = T, Error = E> + Send + 'static,
T: Send + 'static,
E: Send + 'static,
F: Future<Item = T, Error = E> + Send + 'static,
T: Send + 'static,
E: Send + 'static,
Spawns a fiber and returns a future to monitor its execution result.
fn spawn_link<F, T, E>(&self, f: F) -> Link<(), (), T, E> where
F: Future<Item = T, Error = E> + Send + 'static,
T: Send + 'static,
E: Send + 'static,
F: Future<Item = T, Error = E> + Send + 'static,
T: Send + 'static,
E: Send + 'static,
Spawns a linked fiber.
If the returning Link
is dropped, the spawned fiber will terminate.
Examples
use fibers::sync::oneshot; use fibers::{Executor, InPlaceExecutor, Spawn}; use futures::{Future, empty}; let mut executor = InPlaceExecutor::new().unwrap(); let (tx, rx) = oneshot::channel(); let fiber = empty().and_then(move |()| tx.send(())); // Spawns `fiber` and drops `link`. let link = executor.spawn_link(fiber); std::mem::drop(link); // Channel `rx` is disconnected (e.g., `fiber` exited). assert!(executor.run_future(rx).unwrap().is_err());
fn boxed(self) -> BoxSpawn where
Self: Sized + Send + 'static,
Self: Sized + Send + 'static,
Converts this instance into a boxed object.
Implementors
impl Spawn for InPlaceExecutorHandle
[src]
impl Spawn for ThreadPoolExecutorHandle
[src]
impl Spawn for BoxSpawn
[src]
fn spawn_boxed(&self, fiber: Box<dyn Future<Item = (), Error = ()> + Send>)
[src]
fn boxed(self) -> BoxSpawn where
Self: Sized + Send + 'static,
[src]
Self: Sized + Send + 'static,