pub struct Mutex<T> { /* private fields */ }
Expand description
A wrapper around
std::sync::Mutex
with an async lock
method.
Implementations
sourceimpl<T> Mutex<T>
impl<T> Mutex<T>
pub fn new(value: T) -> Mutex<T>
sourcepub async fn lock(&'_ self) -> MutexGuard<'_, T>
pub async fn lock(&'_ self) -> MutexGuard<'_, T>
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more