Trait lock_api::RawRwLock [−][src]
pub unsafe trait RawRwLock {
type GuardMarker;
const INIT: Self;
fn lock_shared(&self);
fn try_lock_shared(&self) -> bool;
fn unlock_shared(&self);
fn lock_exclusive(&self);
fn try_lock_exclusive(&self) -> bool;
fn unlock_exclusive(&self);
}Basic operations for a reader-writer lock.
Types implementing this trait can be used by RwLock to form a safe and
fully-functioning RwLock type.
Safety
Implementations of this trait must ensure that the RwLock is actually
exclusive: an exclusive lock can't be acquired while an exclusive or shared
lock exists, and a shared lock can't be acquire while an exclusive lock
exists.
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 RwLock.
Required Methods
Acquires a shared lock, blocking the current thread until it is able to do so.
Attempts to acquire a shared lock without blocking.
Releases a shared lock.
fn lock_exclusive(&self)
Acquires an exclusive lock, blocking the current thread until it is able to do so.
fn try_lock_exclusive(&self) -> bool
Attempts to acquire an exclusive lock without blocking.
fn unlock_exclusive(&self)
Releases an exclusive lock.