pub struct RawMutexStorage { /* private fields */ }Expand description
Opaque layout block matching the Zircon C++ Mutex (and CriticalMutex) object.
Implementations§
Source§impl RawMutexStorage
impl RawMutexStorage
pub const INIT: Self
Sourcepub const fn const_init() -> Self
pub const fn const_init() -> Self
Statically initializes a RawMutexStorage in constant context.
Sourcepub fn is_contested(&self) -> bool
pub fn is_contested(&self) -> bool
Is the mutex contested i.e. is at least one thread blocked waiting on it?
The contested flag does not track threads which are spin-waiting on the Mutex and have yet to enter a blocking phase.
Sourcepub fn raw_storage_slice(&self) -> &[u8]
pub fn raw_storage_slice(&self) -> &[u8]
Returns a slice over the raw mutex storage bytes.
Trait Implementations§
Source§impl ConstRawLock for RawMutexStorage
impl ConstRawLock for RawMutexStorage
Source§impl Default for RawMutexStorage
impl Default for RawMutexStorage
Source§impl Drop for RawMutexStorage
impl Drop for RawMutexStorage
impl ExclusiveLockPolicy<RawMutexStorage> for RawMutexStorage
impl ExclusiveLockPolicy<RawMutexStorage> for RawCriticalMutexPolicy
Source§impl HasPinData for RawMutexStorage
impl HasPinData for RawMutexStorage
Source§impl LockPolicy<RawMutexStorage> for RawMutexStorage
impl LockPolicy<RawMutexStorage> for RawMutexStorage
Source§type AcquireArgs = ()
type AcquireArgs = ()
Arguments passed when acquiring the lock under this policy.
Source§type GuardState = ()
type GuardState = ()
State stored in the pinned guard across lock acquisition and release.
Source§unsafe fn acquire(
lock: &RawMutexStorage,
_state: &mut Self::GuardState,
_args: (),
)
unsafe fn acquire( lock: &RawMutexStorage, _state: &mut Self::GuardState, _args: (), )
Acquires the raw synchronization lock. Read more
Source§unsafe fn reacquire(lock: &RawMutexStorage, state: &mut Self::GuardState)
unsafe fn reacquire(lock: &RawMutexStorage, state: &mut Self::GuardState)
Re-acquires the raw synchronization lock using existing guard state (e.g. after
call_unlocked). Read moreSource§unsafe fn release(lock: &RawMutexStorage, _state: &mut Self::GuardState)
unsafe fn release(lock: &RawMutexStorage, _state: &mut Self::GuardState)
Releases the raw synchronization lock, restoring the state. Read more
Source§unsafe fn pre_validate(
_lock: &L,
_state: &mut Self::GuardState,
_args: Self::AcquireArgs,
)
unsafe fn pre_validate( _lock: &L, _state: &mut Self::GuardState, _args: Self::AcquireArgs, )
Performs any pre-validation setup (such as disabling and saving interrupts) before
lockdep validation runs. Read more
Source§unsafe fn pre_reacquire(_lock: &L, _state: &mut Self::GuardState)
unsafe fn pre_reacquire(_lock: &L, _state: &mut Self::GuardState)
Re-runs pre-validation on an existing
GuardState before re-acquiring the lock (e.g. in
call_unlocked). Read moreSource§unsafe fn post_validate_acquire(
lock: &L,
state: &mut Self::GuardState,
args: Self::AcquireArgs,
)
unsafe fn post_validate_acquire( lock: &L, state: &mut Self::GuardState, args: Self::AcquireArgs, )
Acquires the raw synchronization lock after
pre_validate and
lockdep validation have completed. Read moreSource§unsafe fn post_validate_reacquire(lock: &L, state: &mut Self::GuardState)
unsafe fn post_validate_reacquire(lock: &L, state: &mut Self::GuardState)
Re-acquires the raw synchronization lock after
pre_reacquire and
lockdep validation have completed. Read moreSource§unsafe fn untrack(_lock: &L, _state: &mut Self::GuardState)
unsafe fn untrack(_lock: &L, _state: &mut Self::GuardState)
Temporarily untracks the held lock in lockdep (used by
call_untracked). Read moreSource§impl LockPolicy<RawMutexStorage> for RawCriticalMutexPolicy
impl LockPolicy<RawMutexStorage> for RawCriticalMutexPolicy
Source§type AcquireArgs = ()
type AcquireArgs = ()
Arguments passed when acquiring the lock under this policy.
Source§type GuardState = bool
type GuardState = bool
State stored in the pinned guard across lock acquisition and release.
Source§unsafe fn acquire(
lock: &RawMutexStorage,
state: &mut Self::GuardState,
_args: (),
)
unsafe fn acquire( lock: &RawMutexStorage, state: &mut Self::GuardState, _args: (), )
Acquires the raw synchronization lock. Read more
Source§unsafe fn reacquire(lock: &RawMutexStorage, state: &mut Self::GuardState)
unsafe fn reacquire(lock: &RawMutexStorage, state: &mut Self::GuardState)
Re-acquires the raw synchronization lock using existing guard state (e.g. after
call_unlocked). Read moreSource§unsafe fn release(lock: &RawMutexStorage, should_clear: &mut Self::GuardState)
unsafe fn release(lock: &RawMutexStorage, should_clear: &mut Self::GuardState)
Releases the raw synchronization lock, restoring the state. Read more
Source§unsafe fn pre_validate(
_lock: &L,
_state: &mut Self::GuardState,
_args: Self::AcquireArgs,
)
unsafe fn pre_validate( _lock: &L, _state: &mut Self::GuardState, _args: Self::AcquireArgs, )
Performs any pre-validation setup (such as disabling and saving interrupts) before
lockdep validation runs. Read more
Source§unsafe fn pre_reacquire(_lock: &L, _state: &mut Self::GuardState)
unsafe fn pre_reacquire(_lock: &L, _state: &mut Self::GuardState)
Re-runs pre-validation on an existing
GuardState before re-acquiring the lock (e.g. in
call_unlocked). Read moreSource§unsafe fn post_validate_acquire(
lock: &L,
state: &mut Self::GuardState,
args: Self::AcquireArgs,
)
unsafe fn post_validate_acquire( lock: &L, state: &mut Self::GuardState, args: Self::AcquireArgs, )
Acquires the raw synchronization lock after
pre_validate and
lockdep validation have completed. Read moreSource§unsafe fn post_validate_reacquire(lock: &L, state: &mut Self::GuardState)
unsafe fn post_validate_reacquire(lock: &L, state: &mut Self::GuardState)
Re-acquires the raw synchronization lock after
pre_reacquire and
lockdep validation have completed. Read moreSource§unsafe fn untrack(_lock: &L, _state: &mut Self::GuardState)
unsafe fn untrack(_lock: &L, _state: &mut Self::GuardState)
Temporarily untracks the held lock in lockdep (used by
call_untracked). Read moreSource§impl PinnedDrop for RawMutexStorage
impl PinnedDrop for RawMutexStorage
Source§impl RawLock for RawMutexStorage
impl RawLock for RawMutexStorage
Source§type DefaultPolicy = RawMutexStorage
type DefaultPolicy = RawMutexStorage
Default policy that should be used when acquiring this lock.
Source§unsafe fn init(_class_id: *const c_void) -> impl PinInit<Self, Infallible>
unsafe fn init(_class_id: *const c_void) -> impl PinInit<Self, Infallible>
Returns a PinInit block to initialize the raw lock in-place. Read more
Source§fn as_mut_ptr(&self) -> *mut c_void
fn as_mut_ptr(&self) -> *mut c_void
Convert the raw lock reference to a standard c_void pointer for FFI.
impl Send for RawMutexStorage
impl Sync for RawMutexStorage
Auto Trait Implementations§
impl !Freeze for RawMutexStorage
impl !RefUnwindSafe for RawMutexStorage
impl UnsafeUnpin for RawMutexStorage
impl UnwindSafe for RawMutexStorage
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
Source§impl<T> PinInit<T> for T
impl<T> PinInit<T> for T
Source§unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), !>
unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), !>
Initializes
slot. Read moreSource§fn pin_chain<F>(self, f: F) -> ChainPinInit<Self, F, T, E>where
F: FnOnce(Pin<&mut T>) -> Result<(), E>,
fn pin_chain<F>(self, f: F) -> ChainPinInit<Self, F, T, E>where
F: FnOnce(Pin<&mut T>) -> Result<(), E>,
First initializes the value using
self then calls the function f with the initialized
value. Read more