Trait futures_util::task::ArcWake

source ·
pub trait ArcWake {
    // Required method
    fn wake_by_ref(arc_self: &Arc<Self>);

    // Provided methods
    fn wake(self: Arc<Self>) { ... }
    fn into_waker(self: Arc<Self>) -> Waker
       where Self: Sized { ... }
}
Expand description

A way of waking up a specific task.

By implementing this trait, types that are expected to be wrapped in an Arc can be converted into Waker objects. Those Wakers can be used to signal executors that a task it owns is ready to be polled again.

Required Methods§

source

fn wake_by_ref(arc_self: &Arc<Self>)

Indicates that the associated task is ready to make progress and should be polled.

This function can be called from an arbitrary thread, including threads which did not create the ArcWake based Waker.

Executors generally maintain a queue of “ready” tasks; wake_by_ref should place the associated task onto this queue.

This function is similar to wake, but must not consume the provided data pointer.

Provided Methods§

source

fn wake(self: Arc<Self>)

Indicates that the associated task is ready to make progress and should be polled.

This function can be called from an arbitrary thread, including threads which did not create the ArcWake based Waker.

Executors generally maintain a queue of “ready” tasks; wake should place the associated task onto this queue.

source

fn into_waker(self: Arc<Self>) -> Waker
where Self: Sized,

Creates a Waker from an Arc, if T implements ArcWake.

If wake() is called on the returned Waker, the wake() function that is defined inside this trait will get called.

Object Safety§

This trait is not object safe.

Implementors§