Struct tokio::sync::Semaphore [−][src]
pub struct Semaphore { /* fields omitted */ }
Expand description
Counting semaphore performing asynchronous permit aquisition.
A semaphore maintains a set of permits. Permits are used to synchronize access to a shared resource. A semaphore differs from a mutex in that it can allow more than one concurrent caller to access the shared resource at a time.
When acquire
is called and the semaphore has remaining permits, the
function immediately returns a permit. However, if no remaining permits are
available, acquire
(asynchronously) waits until an outstanding permit is
dropped. At this point, the freed permit is assigned to the caller.
Implementations
impl Semaphore
[src]
impl Semaphore
[src]pub fn available_permits(&self) -> usize
[src]
pub fn available_permits(&self) -> usize
[src]Returns the current number of available permits
pub fn add_permits(&self, n: usize)
[src]
pub fn add_permits(&self, n: usize)
[src]Adds n
new permits to the semaphore.
pub async fn acquire(&self) -> SemaphorePermit<'_>
[src]
pub async fn acquire(&self) -> SemaphorePermit<'_>
[src]Acquires permit from the semaphore
pub fn try_acquire(&self) -> Result<SemaphorePermit<'_>, TryAcquireError>
[src]
pub fn try_acquire(&self) -> Result<SemaphorePermit<'_>, TryAcquireError>
[src]Tries to acquire a permit form the semaphore