WaitQueue

Struct WaitQueue 

pub struct WaitQueue { /* private fields */ }
Available on crate feature threading only.
Expand description

An WaitQueue, allowing threads to wait for or be notified by other threads.

Similar to [Event], but without any state.

Implementations§

§

impl WaitQueue

pub const fn new() -> WaitQueue

Creates a new WaitQueue.

pub fn wait(&self)

Waits for this WaitQueue to be notified (blocking).

§Panics

Panics if this is called outside of a thread context.

pub fn wait_until(&self, deadline: Instant) -> bool

Waits for this WaitQueue to be notified, with deadline (blocking).

§Panics

Panics if this is called outside of a thread context.

pub fn wait_until_with_check( &self, deadline: Instant, check: impl Fn(CriticalSection<'_>) -> bool, ) -> bool

Waits for this WaitQueue to be notified, with deadline and check fn (blocking).

This function:

  1. calls check()
  2. if check() has returned true, returns true
  3. else, waits on Self until deadline (or notification)
  4. calls check() again, returns its result
§Panics

Panics if this is called outside of a thread context.

pub fn notify_all(&self)

Notify all waiters.

pub fn notify_one(&self)

Notify one waiter.

Trait Implementations§

§

impl Default for WaitQueue

§

fn default() -> WaitQueue

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

impl Sync for WaitQueue

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

§

const WITNESS: W = W::MAKE

A constant of the type witness
§

impl<T> Identity for T
where T: ?Sized,

§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V