fuchsia_async::condition

Struct ConditionGuard

Source
pub struct ConditionGuard<'a, T>(/* private fields */);
Expand description

Guard returned by lock.

Implementations§

Source§

impl<'a, T> ConditionGuard<'a, T>

Source

pub fn add_waker(&mut self, waker_entry: Pin<&mut WakerEntry<T>>, waker: Waker)

Adds the waker entry to the condition’s list of wakers.

Source

pub fn drain_wakers<'b>(&'b mut self) -> Drainer<'b, 'a, T>

Returns an iterator that will drain all wakers. Whilst the drainer exists, a lock is held which will prevent new wakers from being added to the list, so depending on your use case, you might wish to collect the wakers before calling wake on each waker. NOTE: If the drainer is dropped, this will not drain elements not visited.

Source

pub fn waker_count(&self) -> usize

Returns the number of wakers registered with the condition.

Trait Implementations§

Source§

impl<T> Deref for ConditionGuard<'_, T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<T> DerefMut for ConditionGuard<'_, T>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.

Auto Trait Implementations§

§

impl<'a, T> Freeze for ConditionGuard<'a, T>

§

impl<'a, T> RefUnwindSafe for ConditionGuard<'a, T>

§

impl<'a, T> !Send for ConditionGuard<'a, T>

§

impl<'a, T> !Sync for ConditionGuard<'a, T>

§

impl<'a, T> Unpin for ConditionGuard<'a, T>

§

impl<'a, T> UnwindSafe for ConditionGuard<'a, T>

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.

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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.