Struct avr_device::interrupt::Mutex
source · pub struct Mutex<T> { /* private fields */ }
Expand description
A “mutex” based on critical sections.
§Safety
This Mutex is only safe on single-core systems.
On multi-core systems, a CriticalSection
is not sufficient to ensure exclusive access.
Implementations§
source§impl<T> Mutex<T>
impl<T> Mutex<T>
sourcepub fn get_mut(&mut self) -> &mut T
pub fn get_mut(&mut self) -> &mut T
Gets a mutable reference to the contained value when the mutex is already uniquely borrowed.
This does not require locking or a critical section since it takes &mut self
, which
guarantees unique ownership already. Care must be taken when using this method to
unsafely access static mut
variables, appropriate fences must be used to prevent
unwanted optimizations.
sourcepub fn into_inner(self) -> T
pub fn into_inner(self) -> T
Unwraps the contained value, consuming the mutex.
sourcepub fn borrow<'cs>(&'cs self, _cs: CriticalSection<'cs>) -> &'cs T
pub fn borrow<'cs>(&'cs self, _cs: CriticalSection<'cs>) -> &'cs T
Borrows the data for the duration of the critical section.
Trait Implementations§
Auto Trait Implementations§
impl<T> !RefUnwindSafe for Mutex<T>
impl<T> Send for Mutex<T>where
T: Send,
impl<T> Unpin for Mutex<T>where
T: Unpin,
impl<T> UnwindSafe for Mutex<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more