[−][src]Struct tokio::sync::Semaphore
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.
Methods
impl Semaphore
[src]
pub fn new(permits: usize) -> Self
[src]
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]
Adds n
new permits to the semaphore.
pub async fn acquire<'_, '_>(&'_ self) -> SemaphorePermit<'_>
[src]
Acquires permit from the semaphore
pub fn try_acquire(&self) -> Result<SemaphorePermit, TryAcquireError>
[src]
Tries to acquire a permit form the semaphore
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Semaphore
impl Send for Semaphore
impl Sync for Semaphore
impl Unpin for Semaphore
impl !UnwindSafe for Semaphore
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
ⓘImportant traits for &'_ mut Ffn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,