pub struct MutexGuard<'a, T: 'a> {
t: &'a mut T,
lock: &'a Mutex<T>,
}Expand description
An implementation of a “scoped lock” of a mutex. When this structure is dropped (falls out of scope) without unlocking, the panic occurs.
The lock must be explicitly unlocked by unlock method.
The data protected by the mutex can be accessed through this guard.
This structure is created by the lock and try_lock methods on
Mutex.
Fields§
§t: &'a mut T§lock: &'a Mutex<T>Implementations§
Source§impl<T> MutexGuard<'_, T>
impl<T> MutexGuard<'_, T>
Sourcepub fn unlock(self)
pub fn unlock(self)
Releases the underlying Mutex.
As the guard does not automatically release the lock on drop,
the caller must explicitly invoke unlock to mark the lock
as available again.
§Example
let lock = Mutex::new(123);
let guard = lock.lock();
// Work with the locked data...
// Explicitly release the lock.
guard.unlock();Trait Implementations§
Source§impl<T> Deref for MutexGuard<'_, T>
impl<T> Deref for MutexGuard<'_, T>
Source§impl<T> DerefMut for MutexGuard<'_, T>
impl<T> DerefMut for MutexGuard<'_, T>
Source§impl<T> Drop for MutexGuard<'_, T>
impl<T> Drop for MutexGuard<'_, T>
impl<T> !Send for MutexGuard<'_, T>
impl<T: Sync> Sync for MutexGuard<'_, T>
Auto Trait Implementations§
impl<'a, T> Freeze for MutexGuard<'a, T>
impl<'a, T> !RefUnwindSafe for MutexGuard<'a, T>
impl<'a, T> Unpin for MutexGuard<'a, T>
impl<'a, T> !UnwindSafe for MutexGuard<'a, T>
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more