pub struct LocalWaker { /* private fields */ }Expand description
A single-threaded synchronization primitive for task wake-up.
Sometimes the task interested in a given event will change over time.
A LocalWaker can coordinate notifications with the consumer
potentially “updating” the underlying task to wake up. This is useful in
scenarios where a computation completes in another task and wants to
notify the consumer, but the consumer is in the process of being migrated to
a new logical task.
Consumers should call register before checking the result of a computation
and producers should call wake after producing the computation (this
differs from the usual thread::park pattern). It is also permitted for
wake to be called before register. This results in a no-op.
A single LocalWaker may be reused for any number of calls to register or
wake.
Implementations§
Source§impl LocalWaker
impl LocalWaker
Sourcepub fn new() -> LocalWaker
pub fn new() -> LocalWaker
Creates an empty LocalWaker.
Sourcepub fn with(waker: Option<Waker>) -> LocalWaker
pub fn with(waker: Option<Waker>) -> LocalWaker
Creates a LocalWaker with an optional initial waker.
Sourcepub fn register(&self, waker: &Waker) -> bool
pub fn register(&self, waker: &Waker) -> bool
Registers the waker to be notified on calls to wake.
Returns true if a waker was already registered.
Sourcepub fn wake(&self)
pub fn wake(&self)
Calls wake on the last Waker passed to register.
The waker is consumed, so a later wake does nothing until register
is called again. If no waker is registered, this does nothing.
Sourcepub fn wake_checked(&self) -> bool
pub fn wake_checked(&self) -> bool
Calls wake on the last Waker passed to register.
Returns false if no waker is registered. Like wake,
this consumes the registered waker.
Trait Implementations§
Source§impl Clone for LocalWaker
Cloning creates an empty LocalWaker; the registered waker is not copied.
impl Clone for LocalWaker
Cloning creates an empty LocalWaker; the registered waker is not copied.
Source§fn clone(&self) -> LocalWaker
fn clone(&self) -> LocalWaker
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more