pub struct MutexGuard<'a, T: ?Sized> { /* private fields */ }Expand description
Exclusive access to a Mutex’s value; unlocks on drop.
The release is one atomic read-modify-write when no waiter needs telling. Otherwise it is lock-free, not wait-free: it returns after one pass over the queue, plus at most one for each operation of another thread that lands on the queue meanwhile (see Progress).
Implementations§
Source§impl<'a, T: ?Sized> MutexGuard<'a, T>
impl<'a, T: ?Sized> MutexGuard<'a, T>
Sourcepub fn map<U, F>(this: Self, f: F) -> MappedMutexGuard<'a, U>
pub fn map<U, F>(this: Self, f: F) -> MappedMutexGuard<'a, U>
A guard for a component of the locked data. It cannot fail: this guard already holds the lock.
An associated function, MutexGuard::map(guard, f): a method would
shadow methods of the locked data.
Sourcepub fn try_map<U, F>(this: Self, f: F) -> Result<MappedMutexGuard<'a, U>, Self>
pub fn try_map<U, F>(this: Self, f: F) -> Result<MappedMutexGuard<'a, U>, Self>
map that gives the guard back when f finds no
component, with the lock still held.
Trait Implementations§
Source§impl<T: ?Sized> Deref for MutexGuard<'_, T>
impl<T: ?Sized> Deref for MutexGuard<'_, T>
Source§impl<T: ?Sized> DerefMut for MutexGuard<'_, T>
impl<T: ?Sized> DerefMut for MutexGuard<'_, T>
Source§impl<T: ?Sized> Drop for MutexGuard<'_, T>
impl<T: ?Sized> Drop for MutexGuard<'_, T>
Auto Trait Implementations§
impl<'a, T> !RefUnwindSafe for MutexGuard<'a, T>
impl<'a, T> !UnwindSafe for MutexGuard<'a, T>
impl<'a, T> Freeze for MutexGuard<'a, T>where
T: ?Sized,
impl<'a, T> Send for MutexGuard<'a, T>
impl<'a, T> Sync for MutexGuard<'a, T>
impl<'a, T> Unpin for MutexGuard<'a, T>where
T: ?Sized,
impl<'a, T> UnsafeUnpin for MutexGuard<'a, T>where
T: ?Sized,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more