Trait futures_spawn::SpawnHelper
[−]
[src]
pub trait SpawnHelper {
fn spawn<F>(&self, future: F) -> SpawnHandle<F::Item, F::Error> where F: Future, Self: Spawn<Spawned<F>> { ... }
fn spawn_fn<F, R>(&self, f: F) -> SpawnHandle<R::Item, R::Error> where F: FnOnce() -> R, R: IntoFuture, Self: Spawn<Spawned<Lazy<F, R>>> { ... }
}Additional strategies for spawning a future.
These functions have to be on a separate trait vs. on the Spawn trait
in order to make rustc happy.
Provided Methods
fn spawn<F>(&self, future: F) -> SpawnHandle<F::Item, F::Error> where F: Future, Self: Spawn<Spawned<F>>
Spawns a future to run on this Spawn, returning a future representing
the produced value.
This function will return immediately, and schedule the future f to
run on self. The details of scheduling and execution are left to the
implementations of Spawn. The returned future serves as a proxy to the
computation that F is running.
To simply run an arbitrary closure and extract the result, you can use
the future::lazy combinator to defer work to executing on &self.
Note that if the future f panics it will be caught by default and the
returned future will propagate the panic. That is, panics will not reach
&self and will be propagated to the returned future's poll method if
queried.
If the returned future is dropped then f will be canceled, if
possible. That is, if the computation is in the middle of working, it
will be interrupted when possible.
fn spawn_fn<F, R>(&self, f: F) -> SpawnHandle<R::Item, R::Error> where F: FnOnce() -> R, R: IntoFuture, Self: Spawn<Spawned<Lazy<F, R>>>
Spawns a closure on this Spawn
This function is a convenience wrapper around the spawn function above
for running a closure wrapped in future::lazy. It will spawn the
function f provided onto the thread pool, and continue to run the
future returned by f on the thread pool as well.
Implementors
impl<T> SpawnHelper for T