[][src]Struct bare_metal::Mutex

pub struct Mutex<T> { /* fields omitted */ }

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

impl<T> Mutex<T>[src]

pub const fn new(value: T) -> Self[src]

Creates a new mutex.

pub fn get_mut(&mut self) -> &mut T[src]

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.

pub fn into_inner(self) -> T[src]

Unwraps the contained value, consuming the mutex.

pub fn borrow<'cs>(&'cs self, _cs: CriticalSection<'cs>) -> &'cs T[src]

Borrows the data for the duration of the critical section.

Trait Implementations

impl<T: Debug> Debug for Mutex<T>[src]

impl<T> Sync for Mutex<T> where
    T: Send
[src]

Auto Trait Implementations

impl<T> Send for Mutex<T> where
    T: Send

impl<T> Unpin for Mutex<T> where
    T: Unpin

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.