[−][src]Trait lock_api::RawMutex
Basic operations for a mutex.
Types implementing this trait can be used by Mutex
to form a safe and
fully-functioning mutex type.
Safety
Implementations of this trait must ensure that the mutex is actually exclusive: a lock can't be acquired while the mutex is already locked.
Associated Types
type GuardMarker
Marker type which determines whether a lock guard should be Send
. Use
one of the GuardSend
or GuardNoSend
helper types here.
Associated Constants
const INIT: Self
Initial value for an unlocked mutex.
Required methods
fn lock(&self)
Acquires this mutex, blocking the current thread until it is able to do so.
fn try_lock(&self) -> bool
Attempts to acquire this mutex without blocking. Returns true
if the lock was successfully acquired and false
otherwise.
unsafe fn unlock(&self)
Unlocks this mutex.
Safety
This method may only be called if the mutex is held in the current context, i.e. it must
be paired with a successful call to lock
, try_lock
, try_lock_for
or try_lock_until
.
Provided methods
fn is_locked(&self) -> bool
Checks whether the mutex is currently locked.