pub struct LocalWaker { }
Expand description
A synchronization primitive for task wakeup.
Sometimes the task interested in a given event will change over time.
An LocalWaker
can coordinate concurrent 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
.
Registers the waker to be notified on calls to wake
.
Returns true
if waker was registered before.
Calls wake
on the last Waker
passed to register
.
If register
has not been called yet, then this does nothing.
Returns the last Waker
passed to register
, so that the user can wake it.
If a waker has not been registered, this returns None
.
Performs copy-assignment from
source
.
Read more
Formats the value using the given formatter.
Read more
Returns the “default value” for a type.
Read more
Immutably borrows from an owned value.
Read more
Mutably borrows from an owned value.
Read more
Returns the argument unchanged.
Calls U::from(self)
.
That is, this conversion is whatever the implementation of
From<T> for U
chooses to do.
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning.
Read more
Uses borrowed data to replace owned data, usually by cloning.
Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.