Struct std::task::LocalWaker [−][src]
#[repr(transparent)]pub struct LocalWaker { /* fields omitted */ }
🔬 This is a nightly-only experimental API. (futures_api #50547)
futures in libcore are unstable
A LocalWaker is a handle for waking up a task by notifying its executor that it
is ready to be run.
This is similar to the Waker type, but cannot be sent across threads.
Task executors can use this type to implement more optimized singlethreaded wakeup
behavior.
Methods
impl LocalWaker[src]
impl LocalWakerpub unsafe fn new(inner: NonNull<UnsafeWake + 'static>) -> LocalWaker[src]
pub unsafe fn new(inner: NonNull<UnsafeWake + 'static>) -> LocalWaker🔬 This is a nightly-only experimental API. (futures_api #50547)
futures in libcore are unstable
Constructs a new LocalWaker directly.
Note that most code will not need to call this. Implementers of the
UnsafeWake trait will typically provide a wrapper that calls this
but you otherwise shouldn't call it directly.
If you're working with the standard library then it's recommended to
use the local_waker_from_nonlocal or local_waker to convert a Waker
into a LocalWaker.
For this function to be used safely, it must be sound to call inner.wake_local()
on the current thread.
pub fn wake(&self)[src]
pub fn wake(&self)🔬 This is a nightly-only experimental API. (futures_api #50547)
futures in libcore are unstable
Wake up the task associated with this LocalWaker.
pub fn will_wake(&self, other: &LocalWaker) -> bool[src]
pub fn will_wake(&self, other: &LocalWaker) -> bool🔬 This is a nightly-only experimental API. (futures_api #50547)
futures in libcore are unstable
Returns whether or not this LocalWaker and other LocalWaker awaken the same task.
This function works on a best-effort basis, and may return false even
when the LocalWakers would awaken the same task. However, if this function
returns true, it is guaranteed that the LocalWakers will awaken the same
task.
This function is primarily used for optimization purposes.
pub fn will_wake_nonlocal(&self, other: &Waker) -> bool[src]
pub fn will_wake_nonlocal(&self, other: &Waker) -> bool🔬 This is a nightly-only experimental API. (futures_api #50547)
futures in libcore are unstable
Returns whether or not this LocalWaker and other Waker awaken the same task.
This function works on a best-effort basis, and may return false even
when the Wakers would awaken the same task. However, if this function
returns true, it is guaranteed that the LocalWakers will awaken the same
task.
This function is primarily used for optimization purposes.
Trait Implementations
impl From<LocalWaker> for Waker[src]
impl From<LocalWaker> for Wakerfn from(local_waker: LocalWaker) -> Waker[src]
fn from(local_waker: LocalWaker) -> WakerPerforms the conversion.
impl Clone for LocalWaker[src]
impl Clone for LocalWakerfn clone(&self) -> LocalWaker[src]
fn clone(&self) -> LocalWakerReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl Debug for LocalWaker[src]
impl Debug for LocalWakerfn fmt(&self, f: &mut Formatter) -> Result<(), Error>[src]
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>Formats the value using the given formatter. Read more
impl Drop for LocalWaker[src]
impl Drop for LocalWakerimpl Unpin for LocalWaker[src]
impl Unpin for LocalWakerimpl !Sync for LocalWaker[src]
impl !Sync for LocalWakerimpl !Send for LocalWaker[src]
impl !Send for LocalWaker