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

Tasks used to drive a future computation

It's intended over time a particular operation (such as servicing an HTTP request) will involve many futures. This entire operation, however, can be thought of as one unit, as the entire result is essentially just moving through one large state machine.

A "task" is the unit of abstraction for what is driving this state machine and tree of futures forward. A task is used to poll futures and schedule futures with, and has utilities for sharing data between tasks and handles for notifying when a future is ready. Each task also has its own set of task-local data generated by `task_local!`.

Note that libraries typically should not manage tasks themselves, but rather leave that to event loops and other "executors" (see the `executor` module), or by using the `wait` method to create and execute a task directly on the current thread.

More information about the task model can be found online at tokio.rs.

## Functions

There is an important bare function in this module: `current`. The `current` function returns a handle to the currently running task, panicking if one isn't present. This handle is then used to later notify the task that it's ready to make progress through the `Task::notify` method.

## Structs

AtomicTask | A synchronization primitive for task notification.
LocalKey | A key for task-local data stored in a future's task.
Task | A handle to a "task", which represents a single lightweight "thread" of execution driving a future to completion.
UnparkEvent | [ Deprecated ] A set insertion to trigger upon `unpark`.

## Traits

EventSet | [ Deprecated ] A concurrent set which allows for the insertion of `usize` values.

## Functions

current | Returns a handle to the current task to call `notify` at a later date.
init ⚠ | Initialize the `futures` task system.
with_unpark_event | [ Deprecated ] For the duration of the given callback, add an "unpark event" to be triggered when the task handle is used to unpark the task.

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)