Struct tokio_util::sync::PollSemaphore[][src]

pub struct PollSemaphore { /* fields omitted */ }

A wrapper around Semaphore that provides a poll_acquire method.

Implementations

impl PollSemaphore[src]

pub fn new(semaphore: Arc<Semaphore>) -> Self[src]

Create a new PollSemaphore.

pub fn close(&self)[src]

Closes the semaphore.

pub fn clone_inner(&self) -> Arc<Semaphore>[src]

Obtain a clone of the inner semaphore.

pub fn into_inner(self) -> Arc<Semaphore>[src]

Get back the inner semaphore.

pub fn poll_acquire(
    &mut self,
    cx: &mut Context<'_>
) -> Poll<Option<OwnedSemaphorePermit>>
[src]

Poll to acquire a permit from the semaphore.

This can return the following values:

  • Poll::Pending if a permit is not currently available.
  • Poll::Ready(Some(permit)) if a permit was acquired.
  • Poll::Ready(None) if the semaphore has been closed.

When this method returns Poll::Pending, the current task is scheduled to receive a wakeup when a permit becomes available, or when the semaphore is closed. Note that on multiple calls to poll_acquire, only the Waker from the Context passed to the most recent call is scheduled to receive a wakeup.

pub fn available_permits(&self) -> usize[src]

Returns the current number of available permits.

This is equivalent to the Semaphore::available_permits method on the tokio::sync::Semaphore type.

pub fn add_permits(&self, n: usize)[src]

Adds n new permits to the semaphore.

The maximum number of permits is usize::MAX >> 3, and this function will panic if the limit is exceeded.

This is equivalent to the Semaphore::add_permits method on the tokio::sync::Semaphore type.

Trait Implementations

impl AsRef<Semaphore> for PollSemaphore[src]

impl Clone for PollSemaphore[src]

impl Debug for PollSemaphore[src]

impl Stream for PollSemaphore[src]

type Item = OwnedSemaphorePermit

Values yielded by the stream.

Auto Trait Implementations

impl !RefUnwindSafe for PollSemaphore

impl Send for PollSemaphore

impl Sync for PollSemaphore

impl Unpin for PollSemaphore

impl !UnwindSafe for PollSemaphore

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.