Function futures::task::with_unpark_event
[−]
[src]
pub fn with_unpark_event<F, R>(event: UnparkEvent, f: F) -> R where F: FnOnce() -> R
For the duration of the given callback, add an "unpark event" to be triggered when the task handle is used to unpark the task.
Unpark events are used to pass information about what event caused a task to be unparked. In some cases, tasks are waiting on a large number of possible events, and need precise information about the wakeup to avoid extraneous polling.
Every Task
handle comes with a set of unpark events which will fire when
unpark
is called. When fired, these events insert an identifer into a
concurrent set, which the task can read from to determine what events
occurred.
This function immediately invokes the closure, f
, but arranges things so
that task::park
will produce a Task
handle that includes the given
unpark event.
Panics
This function will panic if a task is not currently being executed. That
is, this method can be dangerous to call outside of an implementation of
poll
.