Function futures::sync::oneshot::spawn[][src]

pub fn spawn<F, E>(future: F, executor: &E) -> SpawnHandle<F::Item, F::Error> where
    F: Future,
    E: Executor<Execute<F>>, 

Spawns a future onto the instance of Executor provided, executor, returning a handle representing the completion of the future.

The SpawnHandle returned is a future that is a proxy for future itself. When future completes on executor then the SpawnHandle will itself be resolved. Internally SpawnHandle contains a oneshot channel and is thus safe to send across threads.

The future will be canceled if the SpawnHandle is dropped. If this is not desired then the SpawnHandle::forget function can be used to continue running the future to completion.

Panics

This function will panic if the instance of Spawn provided is unable to spawn the future provided.

If the provided instance of Spawn does not actually run future to completion, then the returned handle may panic when polled. Typically this is not a problem, though, as most instances of Spawn will run futures to completion.

Note that the returned future will likely panic if the futures provided panics. If a future running on an executor panics that typically means that the executor drops the future, which falls into the above case of not running the future to completion essentially.