Struct ruspiro_lock::sync::Mutex [−][src]
#[repr(C, align(16))]pub struct Mutex<T: ?Sized> { /* fields omitted */ }
An mutual exclusive access lock for the interior data
Implementations
impl<T> Mutex<T>
[src]
pub const fn new(value: T) -> Self
[src]
Create a new data access guarding lock
pub fn try_lock(&self) -> Option<MutexGuard<'_, T>>
[src]
Try to lock the interior data for mutual exclusive access. Returns None
if the lock failes
or Some(MutexGuard)
. The actual data, the MutexGuard wraps could be conviniently accessed by
dereferencing it.
Example
static DATA: Mutex<u32> = Mutex::new(10); if let Some(data) = DATA.try_lock() { // do something with data }
pub fn lock(&self) -> MutexGuard<'_, T>
[src]
Lock the guarded data for mutual exclusive access. This blocks until the data could be
successfully locked. The locked data will be returned as MutexGuard
. Simply dereferencing
this allows access to the contained data value.
Example
static DATA: Mutex<u32> = Mutex::new(10); let mut data = DATA.lock(); // do something with data *data = 15;
pub fn into_inner(self) -> T where
T: Sized,
[src]
T: Sized,
Consume the Mutex and return the inner value
Trait Implementations
impl<T> Debug for Mutex<T> where
T: Debug,
[src]
T: Debug,
impl<T> Sync for Mutex<T>
[src]
The Mutex is always Sync
, to make it Send
as well it need to be wrapped into an Arc
.
Auto Trait Implementations
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,