Skip to main content

SemaphoreWaiter

Struct SemaphoreWaiter 

Source
pub struct SemaphoreWaiter<P: Priority> { /* private fields */ }
Expand description

Opaque waiter type used for PriorityQueue entries.

This implements Priority and is the entry type used by Semaphore.

Trait Implementations§

Source§

impl<P: Debug + Priority> Debug for SemaphoreWaiter<P>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<P: Priority> Priority for SemaphoreWaiter<P>

Has the same priority as P except “held” entries always have higher priority than pending requesters

Additionally constraints order with the same priority to enqueue the lowest request count first to minimize waiting (this applies after the inner priority has compared, so FIFO and LIFO will prevent this).

Source§

fn compare(&self, other: &Self) -> Ordering

Compare a (possibly new) priority to an already queued one. Read more
Source§

fn compare_new(&self, old: &Self) -> Ordering

Compare a new (not in a queue) priority with an already queued one (old). Read more

Auto Trait Implementations§

§

impl<P> !Freeze for SemaphoreWaiter<P>

§

impl<P> RefUnwindSafe for SemaphoreWaiter<P>
where P: RefUnwindSafe,

§

impl<P> Send for SemaphoreWaiter<P>
where P: Send,

§

impl<P> Sync for SemaphoreWaiter<P>
where P: Sync,

§

impl<P> Unpin for SemaphoreWaiter<P>
where P: Unpin,

§

impl<P> UnsafeUnpin for SemaphoreWaiter<P>
where P: UnsafeUnpin,

§

impl<P> UnwindSafe for SemaphoreWaiter<P>
where P: UnwindSafe,

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.

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.