Struct maitake_sync::semaphore::OwnedPermit

source ·
pub struct OwnedPermit { /* private fields */ }
Available on crate feature alloc only.
Expand description

An owned RAII guard representing one or more permits acquired from a Semaphore.

When the OwnedPermit is dropped, the permits it represents are released back to the Semaphore, potentially waking another task.

This type is identical to the Permit type, except that it holds an Arc clone of the Semaphore, rather than borrowing it. This allows the guard to be valid for the 'static lifetime.

This type is returned by the Semaphore::acquire_owned and Semaphore::try_acquire_owned methods.

Implementations§

source§

impl OwnedPermit

source

pub fn forget(self)

Forget this permit, dropping it without returning the number of acquired permits to the semaphore.

This permanently decreases the number of permits in the semaphore by self.permits().

source

pub fn permits(&self) -> usize

Returns the count of semaphore permits owned by this OwnedPermit.

Trait Implementations§

source§

impl Debug for OwnedPermit

source§

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

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

impl Drop for OwnedPermit

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

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.

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>,

§

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>,

§

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.