Module task

Source
Expand description

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.

Structs§

AtomicWaker
A synchronization primitive for task wakeup.
Context
The context of an asynchronous task.
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>.
RawWaker
A RawWaker allows the implementor of a task executor to create a Waker or a LocalWaker which provides customized wakeup behavior.
RawWakerVTable
A virtual function pointer table (vtable) that specifies the behavior of a RawWaker.
SpawnError
An error that occurred during spawning.
Waker
A Waker is a handle for waking up a task by notifying its executor that it is ready to be run.
WakerRef
A Waker that is only valid for a given lifetime.

Enums§

Poll
Indicates whether a value is available or if the current task has been scheduled to receive a wakeup instead.

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>.