#[repr(transparent)]pub struct Waker { /* private fields */ }
Expand description
Implementations
sourceimpl Waker
impl Waker
sourcepub fn wake(self)
pub fn wake(self)
Wake up the task associated with this Waker
.
As long as the runtime keeps running and the task is not finished, it is
guaranteed that each invocation of wake
(or wake_by_ref
) will be followed
by at least one poll
of the task to which this Waker
belongs. This makes
it possible to temporarily yield to other tasks while running potentially
unbounded processing loops.
Note that the above implies that multiple wake-ups may be coalesced into a
single poll
invocation by the runtime.
Also note that yielding to competing tasks is not guaranteed: it is the executor’s choice which task to run and the executor may choose to run the current task again.
sourcepub fn wake_by_ref(&self)
pub fn wake_by_ref(&self)
Wake up the task associated with this Waker
without consuming the Waker
.
This is similar to wake
, but may be slightly less efficient in the case
where an owned Waker
is available. This method should be preferred to
calling waker.clone().wake()
.
sourcepub fn will_wake(&self, other: &Waker) -> bool
pub fn will_wake(&self, other: &Waker) -> bool
Returns true
if this Waker
and another Waker
have awoken the same task.
This function works on a best-effort basis, and may return false even
when the Waker
s would awaken the same task. However, if this function
returns true
, it is guaranteed that the Waker
s will awaken the same task.
This function is primarily used for optimization purposes.
Trait Implementations
impl Send for Waker
impl Sync for Waker
impl Unpin for Waker
Auto Trait Implementations
impl RefUnwindSafe for Waker
impl UnwindSafe for Waker
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more