Struct OwnedSemaphorePermit
struct OwnedSemaphorePermit { ... }
An owned permit from the semaphore.
This type is created by the acquire_owned method.
Implementations
impl OwnedSemaphorePermit
fn forget(self: Self)Forgets the permit without releasing it back to the semaphore. This can be used to reduce the amount of permits available from a semaphore.
Examples
use Arc; use Semaphore; let sem = new; // Since we forgot the permit, available permits won't go back to its initial value // even after the permit is dropped. assert_eq!;fn merge(self: &mut Self, other: Self)Merge two
OwnedSemaphorePermitinstances together, consumingotherwithout releasing the permits it holds.Permits held by both
selfandotherare released whenselfdrops.Panics
This function panics if permits from different
Semaphoreinstances are merged.Examples
use Arc; use Semaphore; let sem = new; let mut permit = sem.clone.try_acquire_owned.unwrap; for _ in 0..9 assert_eq!; // Release all permits in a single batch. drop; assert_eq!;fn split(self: &mut Self, n: usize) -> Option<Self>Splits
npermits fromselfand returns a newOwnedSemaphorePermitinstance that holdsnpermits.If there are insufficient permits and it's not possible to reduce by
n, returnsNone.Note
It will clone the owned
Arc<Semaphore>to construct the new instance.Examples
use Arc; use Semaphore; let sem = new; let mut p1 = sem.try_acquire_many_owned.unwrap; let p2 = p1.split.unwrap; assert_eq!; assert_eq!;fn semaphore(self: &Self) -> &Arc<Semaphore>Returns the
Semaphorefrom which this permit was acquired.fn num_permits(self: &Self) -> usizeReturns the number of permits held by
self.
impl Debug for OwnedSemaphorePermit
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl Drop for OwnedSemaphorePermit
fn drop(self: &mut Self)
impl Freeze for OwnedSemaphorePermit
impl RefUnwindSafe for OwnedSemaphorePermit
impl Send for OwnedSemaphorePermit
impl Sync for OwnedSemaphorePermit
impl Unpin for OwnedSemaphorePermit
impl UnsafeUnpin for OwnedSemaphorePermit
impl UnwindSafe for OwnedSemaphorePermit
impl<T> Any for OwnedSemaphorePermit
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for OwnedSemaphorePermit
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for OwnedSemaphorePermit
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> From for OwnedSemaphorePermit
fn from(t: T) -> TReturns the argument unchanged.
impl<T, U> Into for OwnedSemaphorePermit
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for OwnedSemaphorePermit
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for OwnedSemaphorePermit
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>