[−][src]Struct actix_utils::task::LocalWaker
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 AtomicWaker may be reused for any number of calls to register or
wake.
Methods
impl LocalWaker[src]
pub fn new() -> Self[src]
Create an LocalWaker.
pub fn register(&self, waker: &Waker)[src]
Registers the waker to be notified on calls to wake.
pub fn wake(&self)[src]
Calls wake on the last Waker passed to register.
If register has not been called yet, then this does nothing.
pub fn take(&self) -> Option<Waker>[src]
Returns the last Waker passed to register, so that the user can wake it.
If a waker has not been registered, this returns None.
Trait Implementations
Auto Trait Implementations
impl !Send for LocalWaker
impl !Sync for LocalWaker
impl Unpin for LocalWaker
impl UnwindSafe for LocalWaker
impl !RefUnwindSafe for LocalWaker
Blanket Implementations
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = !
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,