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

  • A synchronization primitive for task wakeup.
  • The context of an asynchronous task.
  • A custom trait object for polling futures, roughly akin to Box<dyn Future<Output = T> + Send + 'a>.
  • A custom trait object for polling futures, roughly akin to Box<dyn Future<Output = T> + 'a>.
  • A RawWaker allows the implementor of a task executor to create a Waker which provides customized wakeup behavior.
  • A virtual function pointer table (vtable) that specifies the behavior of a RawWaker.
  • An error that occurred during spawning.
  • A Waker is a handle for waking up a task by notifying its executor that it is ready to be run.
  • A Waker that is only valid for a given lifetime.

Enums

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

Traits

  • A way of waking up a specific task.
  • The LocalSpawn is similar to Spawn, but allows spawning futures that don’t implement Send.
  • Extension trait for LocalSpawn.
  • The Spawn trait allows for pushing futures onto an executor that will run them to completion.
  • Extension trait for Spawn.
  • A custom implementation of a future trait object for FutureObj, providing a vtable with drop support.

Functions

  • Create a new Waker which does nothing when wake() is called on it.
  • Get a static reference to a Waker which does nothing when wake() is called on it.
  • Creates a Waker from an Arc<impl ArcWake>.
  • Creates a reference to a Waker from a reference to Arc<impl ArcWake>.