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.
acquire is called and the semaphore has remaining permits, the
function immediately returns a permit. However, if no remaining permits are
acquire (asynchronously) waits until an outstanding permit is
dropped. At this point, the freed permit is assigned to the caller.
Creates a new semaphore with the initial number of permits
pub fn available_permits(&self) -> usize[src]
Returns the current number of available permits
pub fn add_permits(&self, n: usize)[src]
n new permits to the semaphore.
pub async fn acquire<'_, '_>(&'_ self) -> SemaphorePermit<'_>[src]
Acquire permit from the semaphore
pub fn try_acquire(&self) -> Result<SemaphorePermit, TryAcquireError>[src]
Try to acquire a permit form the semaphore
impl !RefUnwindSafe for Semaphore
impl !UnwindSafe for Semaphore
type Error = Infallible
The type returned in the event of a conversion error.