pub unsafe trait RawMutex {
type GuardMarker;
const INIT: Self;
// Required methods
fn lock(&self);
fn try_lock(&self) -> bool;
unsafe fn unlock(&self);
// Provided method
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 Constants§
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 Methods§
Sourcefn try_lock(&self) -> bool
fn try_lock(&self) -> bool
Attempts to acquire this mutex without blocking. Returns true
if the lock was successfully acquired and false
otherwise.
Sourceunsafe fn unlock(&self)
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§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.