Module futures_util::task[][src]

Tools for working with tasks.

This module contains:

  • Spawn, a trait for spawning new tasks.
  • Context, a context of an asynchronous task, including a handle for waking up the task.
  • Waker, a handle for waking up a task.

The remaining types and traits in the module are used for implementing executors or dealing with synchronization issues around task wakeup.

Re-exports

pub use core::task::Context;
pub use core::task::Poll;
pub use core::task::Waker;
pub use core::task::RawWaker;
pub use core::task::RawWakerVTable;

Structs

AtomicWaker

A synchronization primitive for task wakeup.

FutureObj

A custom trait object for polling futures, roughly akin to Box<dyn Future<Output = T> + Send + 'a>.

LocalFutureObj

A custom trait object for polling futures, roughly akin to Box<dyn Future<Output = T> + 'a>.

SpawnError

An error that occurred during spawning.

WakerRef

A Waker that is only valid for a given lifetime.

Traits

ArcWake

A way of waking up a specific task.

LocalSpawn

The LocalSpawn is similar to Spawn, but allows spawning futures that don't implement Send.

LocalSpawnExt

Extension trait for LocalSpawn.

Spawn

The Spawn trait allows for pushing futures onto an executor that will run them to completion.

SpawnExt

Extension trait for Spawn.

UnsafeFutureObj

A custom implementation of a future trait object for FutureObj, providing a vtable with drop support.

Functions

noop_waker

Create a new Waker which does nothing when wake() is called on it.

noop_waker_ref

Get a static reference to a Waker which does nothing when wake() is called on it.

waker

Creates a Waker from an Arc<impl ArcWake>.

waker_ref

Creates a reference to a Waker from a reference to Arc<impl ArcWake>.