Struct safina_sync::Mutex[][src]

pub struct Mutex<T> { /* fields omitted */ }

A wrapper around std::sync::Mutex with an async lock method.

Implementations

impl<T> Mutex<T>[src]

pub fn new(value: T) -> Mutex<T>[src]

pub async fn lock(&self) -> MutexGuard<'_, T>[src]

Acquires the mutex, sleeping the current task until it is able to do so.

After this function returns, is the only task holding the lock.

The returned guard is an RAII scoped lock. It automatically unlocks the mutex when dropped (falls out of scope).

The returned guard is not Send so you cannot await while holding it.

If a task panics while holding the guard, the underlying mutex becomes “poisoned” and subsequent calls to lock will panic.

Auto Trait Implementations

impl<T> RefUnwindSafe for Mutex<T>

impl<T> Send for Mutex<T> where
    T: Send

impl<T> Sync for Mutex<T> where
    T: Send

impl<T> Unpin for Mutex<T> where
    T: Unpin

impl<T> UnwindSafe for Mutex<T>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.