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]
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]
&mut self,
cx: &mut Context<'_>
) -> Poll<Option<OwnedSemaphorePermit>>
Poll to acquire a permit from the semaphore.
This can return the following values:
Poll::Pendingif 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 Clone for PollSemaphore[src]
impl Clone for PollSemaphore[src]