Struct actix_utils::task::LocalWaker[][src]

pub struct LocalWaker { /* fields omitted */ }
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 AtomicWaker may be reused for any number of calls to register or wake.

Implementations

Create an LocalWaker.

Check if waker has been registered.

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.

Trait Implementations

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

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.