Struct rwlock2::MutexGuard [] [src]

#[must_use]
pub struct MutexGuard<'a, T: ?Sized + 'a> { /* fields omitted */ }

An RAII implementation of a "scoped lock" of a mutex. When this structure is dropped (falls out of scope), the lock will be unlocked.

The data protected by the mutex can be access through this guard via its Deref and DerefMut implementations

Methods

impl<'mutex, T: ?Sized> MutexGuard<'mutex, T>
[src]

Transform this guard to hold a sub-borrow of the original data.

Applies the supplied closure to the data, returning a new lock guard referencing the borrow returned by the closure.

Examples

let x = Mutex::new(vec![1, 2]);

{
    let mut y = MutexGuard::map(x.lock().unwrap(), |v| &mut v[0]);
    *y = 3;
}

assert_eq!(&*x.lock().unwrap(), &[3, 2]);

Conditionally get a new guard to a sub-borrow depending on the original contents of the guard.

Trait Implementations

impl<'mutex, T: ?Sized> Deref for MutexGuard<'mutex, T>
[src]

The resulting type after dereferencing

The method called to dereference a value

impl<'mutex, T: ?Sized> DerefMut for MutexGuard<'mutex, T>
[src]

The method called to mutably dereference a value

impl<'a, T: ?Sized> Drop for MutexGuard<'a, T>
[src]

A method called when the value goes out of scope. Read more