pub trait ArcWake: Send + Sync {
fn wake_by_ref(arc_self: &Arc<Self>);
fn wake(self: Arc<Self>) { ... }
}
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 poll
ed again.
Currently, there are two ways to convert ArcWake
into Waker
:
Required Methods§
sourcefn wake_by_ref(arc_self: &Arc<Self>)
fn wake_by_ref(arc_self: &Arc<Self>)
Indicates that the associated task is ready to make progress and should
be poll
ed.
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§
sourcefn wake(self: Arc<Self>)
fn wake(self: Arc<Self>)
Indicates that the associated task is ready to make progress and should
be poll
ed.
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.