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::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 Clone for PollSemaphore
[src]
impl Clone for PollSemaphore
[src]