Skip to main content

Acquire

Struct Acquire 

Source
pub(crate) struct Acquire<'a> {
    node: Waiter,
    semaphore: &'a Semaphore,
    num_permits: usize,
    queued: bool,
}

Fields§

§node: Waiter§semaphore: &'a Semaphore§num_permits: usize§queued: bool

Whether Acquire::drop must clean up after the waiter, by removing it from the wait queue if it is still linked and returning the permits assigned to it to the semaphore.

This is set as soon as poll_acquire assigns permits to the waiter or links it into the wait queue, and it is only cleared once the future completes and the permits are handed to the caller.

Implementations§

Source§

impl<'a> Acquire<'a>

Source

fn new(semaphore: &'a Semaphore, num_permits: usize) -> Self

Source

fn project( self: Pin<&mut Self>, ) -> (Pin<&mut Waiter>, &Semaphore, usize, &mut bool)

Trait Implementations§

Source§

impl Drop for Acquire<'_>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more
Source§

impl Future for Acquire<'_>

Source§

type Output = Result<(), AcquireError>

The type of value produced on completion.
Source§

fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

Attempts to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more
Source§

impl Sync for Acquire<'_>

Auto Trait Implementations§

§

impl<'a> !Freeze for Acquire<'a>

§

impl<'a> !RefUnwindSafe for Acquire<'a>

§

impl<'a> Send for Acquire<'a>

§

impl<'a> !Unpin for Acquire<'a>

§

impl<'a> !UnsafeUnpin for Acquire<'a>

§

impl<'a> !UnwindSafe for Acquire<'a>

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<F> IntoFuture for F
where F: Future,

Source§

type Output = <F as Future>::Output

The output that the future will produce on completion.
Source§

type IntoFuture = F

Which kind of future are we turning this into?
Source§

fn into_future(self) -> <F as IntoFuture>::IntoFuture

Creates a future from a value. Read more
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.