
This allows libraries that require access to reactor related types to depend on this crate without having to depend on the entirety of Tokio. For example, libraries that implement their custom I/O resource will need to access `Registration` or `PollEvented`.
tokio-executor
Task execution related traits and utilities.
Overview
In the Tokio execution model, futures are lazy. When a future is created, no work is performed. In order for the work defined by the future to happen, the future must be submitted to an executor. A future that is submitted to an executor is called a "task".
The executor is responsible for ensuring that [Future::poll
] is called
whenever the task is [notified]. Notification happens when the internal state of
a task transitions from "not ready" to ready. For example, a socket might have
received data and a call to read
will now be able to succeed.
This crate provides traits and utilities that are necessary for building an executor, including:
-
The
Executor
trait describes the API for spawning a future onto an executor. -
enter
marks that the the current thread is entering an execution context. This prevents a second executor from accidentally starting from within the context of one that is already running. -
DefaultExecutor
spawns tasks onto the default executor for the current context. -
Park
abstracts over blocking and unblocking the current thread.
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Tokio by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.