Struct futures_core::task::Context [−][src]
pub struct Context<'a> { /* fields omitted */ }
Information about the currently-running task.
Contexts are always tied to the stack, since they are set up specifically
when performing a single poll
step on a task.
Methods
impl<'a> Context<'a>
[src]
impl<'a> Context<'a>
pub fn without_spawn(map: &'a mut LocalMap, waker: &'a Waker) -> Context<'a>
[src]
pub fn without_spawn(map: &'a mut LocalMap, waker: &'a Waker) -> Context<'a>
Create a new task context without the ability to spawn
.
This constructor should only be used for no_std
contexts, where the
standard Executor
trait is not available.
pub fn waker(&self) -> &Waker
[src]
pub fn waker(&self) -> &Waker
Get the Waker
associated with the current task.
The waker can subsequently be used to wake up the task when some event of interest has happened.
pub fn with_waker<'b>(&'b mut self, waker: &'b Waker) -> Context<'b>
[src]
pub fn with_waker<'b>(&'b mut self, waker: &'b Waker) -> Context<'b>
Produce a context like the current one, but using the given waker instead.
This advanced method is primarily used when building "internal schedulers" within a task, where you want to provide some customized wakeup logic.
pub fn with_locals<'b>(&'b mut self, map: &'b mut LocalMap) -> Context<'b>
[src]
pub fn with_locals<'b>(&'b mut self, map: &'b mut LocalMap) -> Context<'b>
Produce a context like the current one, but using the given task locals instead.
This advanced method is primarily used when building "internal schedulers" within a task.
impl<'a> Context<'a>
[src]
impl<'a> Context<'a>
pub fn new(
map: &'a mut LocalMap,
waker: &'a Waker,
executor: &'a mut Executor
) -> Context<'a>
[src]
pub fn new(
map: &'a mut LocalMap,
waker: &'a Waker,
executor: &'a mut Executor
) -> Context<'a>
Create a new task context.
Task contexts are equipped with:
- Task-local data
- A means of waking the task
- A means of spawning new tasks, i.e. an executor
pub fn executor(&mut self) -> &mut Executor
[src]
pub fn executor(&mut self) -> &mut Executor
Get the default executor associated with this task, if any
This method is useful primarily if you want to explicitly handle spawn failures.
pub fn spawn<F>(&mut self, f: F) where
F: Future<Item = (), Error = Never> + 'static + Send,
[src]
pub fn spawn<F>(&mut self, f: F) where
F: Future<Item = (), Error = Never> + 'static + Send,
Spawn a future onto the default executor.
Panics
This method will panic if the default executor is unable to spawn or does not exist.
To handle executor errors, use executor() instead.
pub fn with_executor<'b>(
&'b mut self,
executor: &'b mut Executor
) -> Context<'b>
[src]
pub fn with_executor<'b>(
&'b mut self,
executor: &'b mut Executor
) -> Context<'b>
Produce a context like the current one, but using the given executor instead.
This advanced method is primarily used when building "internal schedulers" within a task.