RawMutex

Struct RawMutex 

Source
pub struct RawMutex(/* private fields */);
Expand description

Low-level recursive mutex wrapper for FreeRTOS.

This is the underlying implementation of the mutex that directly interfaces with FreeRTOS semaphore APIs. It’s recursive, meaning the same thread can lock it multiple times.

§Note

Users should typically use Mutex<T> instead, which provides type-safe data protection. This type is exposed for advanced use cases.

Implementations§

Source§

impl RawMutex

Source

pub fn new() -> Result<Self>

Creates a new raw recursive mutex.

§Returns
  • Ok(RawMutex) - Successfully created
  • Err(Error::OutOf Memory) - Failed to allocate mutex resources

Trait Implementations§

Source§

impl Debug for RawMutex

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for RawMutex

Source§

type Target = *const c_void

The resulting type after dereferencing.
Source§

fn deref(&self) -> &MutexHandle

Dereferences the value.
Source§

impl Display for RawMutex

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for RawMutex

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl RawMutex for RawMutex

Source§

fn lock(&self) -> OsalRsBool

Locks the mutex (blocking). Read more
Source§

fn lock_from_isr(&self) -> OsalRsBool

Locks the mutex from ISR context (non-blocking). Read more
Source§

fn unlock(&self) -> OsalRsBool

Unlocks the mutex. Read more
Source§

fn unlock_from_isr(&self) -> OsalRsBool

Unlocks the mutex from ISR context. Read more
Source§

fn delete(&mut self)

Deletes the mutex and frees its resources.
Source§

impl Send for RawMutex

Source§

impl Sync for RawMutex

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.