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

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.

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