Struct spinning_top::RawSpinlock
source · pub struct RawSpinlock { /* private fields */ }
Expand description
Provides mutual exclusion based on spinning on an AtomicBool
.
It’s recommended to use this type either combination with lock_api::Mutex
or
through the Spinlock
type.
Example
use lock_api::RawMutex;
let lock = spinning_top::RawSpinlock::INIT;
assert_eq!(lock.try_lock(), true); // lock it
assert_eq!(lock.try_lock(), false); // can't be locked a second time
unsafe { lock.unlock(); } // unlock it
assert_eq!(lock.try_lock(), true); // now it can be locked again
Trait Implementations§
source§impl Debug for RawSpinlock
impl Debug for RawSpinlock
source§impl RawMutex for RawSpinlock
impl RawMutex for RawSpinlock
source§const INIT: RawSpinlock = _
const INIT: RawSpinlock = _
Initial value for an unlocked mutex.
§type GuardMarker = GuardSend
type GuardMarker = GuardSend
Marker type which determines whether a lock guard should be
Send
. Use
one of the GuardSend
or GuardNoSend
helper types here.