# futures_util::task - Rust
API documentation for the Rust `task` mod in crate `futures_util`.
Keywords: rust, rustlang, rust-lang, task

# [−] [src] Module futures_util::task

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.

## Traits

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.