950: Add .into_inner() and .get_mut() to Mutex r=Dirbaio a=hulthe

Similar to the methods on std Mutex, these methods allow accessing the underlying data without locking the mutex when you have exclusive access to it.

Co-authored-by: Joakim Hulthe <joakim@hulthe.net>
This commit is contained in:
bors[bot] 2022-09-16 10:32:12 +00:00 committed by GitHub
commit ec10460547
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -111,6 +111,22 @@ where
Ok(MutexGuard { mutex: self })
}
/// Consumes this mutex, returning the underlying data.
pub fn into_inner(self) -> T
where
T: Sized,
{
self.inner.into_inner()
}
/// Returns a mutable reference to the underlying data.
///
/// Since this call borrows the Mutex mutably, no actual locking needs to
/// take place -- the mutable borrow statically guarantees no locks exist.
pub fn get_mut(&mut self) -> &mut T {
self.inner.get_mut()
}
}
/// Async mutex guard.