pub unsafe trait RawMutex {
type GuardMarker;
const INIT: Self;
fn lock(&self);
fn try_lock(&self) -> bool;
unsafe fn unlock(&self);
fn is_locked(&self) -> bool { ... }
}
Expand description
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.
Required Associated Types
sourcetype GuardMarker
type GuardMarker
Marker type which determines whether a lock guard should be Send
. Use
one of the GuardSend
or GuardNoSend
helper types here.
Required Associated Constants
Required Methods
Attempts to acquire this mutex without blocking. Returns true
if the lock was successfully acquired and false
otherwise.
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
.