Mutex

Struct Mutex 

Source
pub struct Mutex<T: ?Sized> { /* private fields */ }
Expand description

Represents an object which is protected by a FreeRTOS recursive mutex.

Implementations§

Source§

impl<T> Mutex<T>

Provides a constant-period looping construct.

Source

pub fn new(data: T) -> Self

Creates a new mutex which wraps the given object. Panics on failure; see Mutex::try_new().

Source

pub fn try_new(data: T) -> Result<Self, Error>

Creates a new mutex which wraps the given object.

Source§

impl<T: ?Sized> Mutex<T>

Source

pub fn lock(&self) -> MutexGuard<'_, T>

Obtains a MutexGuard giving access to the object protected by the mutex. Blocks until access can be obtained. Panics on failure; see Mutex::try_lock().

§Behaviour

This function is blocking; it does not return until the the mutex is taken by the task, and allows other tasks to run in the meantime. Further, the task which currently holds the mutex actually inherits the current task’s priority, if it is higher; this prevents a high-priority task from being slowed down by waiting for a resource held by a low-priority task. See this documentation from FreeRTOS for details.

Source

pub fn try_lock(&self) -> Result<MutexGuard<'_, T>, Error>

Obtains a MutexGuard giving access to the object protected by the mutex. Blocks until access can be obtained; see Mutex::lock() for a more thorough behavioural description.

Source

pub fn poll(&self) -> Option<MutexGuard<'_, T>>

Obtains a MutexGuard giving access to the object protected by the mutex, if it is available immediately. Does not block.

Trait Implementations§

Source§

impl<T: ?Sized + Debug> Debug for Mutex<T>

Source§

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

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

impl<T: ?Sized + Default> Default for Mutex<T>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<T: ?Sized> Drop for Mutex<T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<T> From<T> for Mutex<T>

Source§

fn from(data: T) -> Self

Converts to this type from the input type.
Source§

impl<T: ?Sized + Send> Send for Mutex<T>

Source§

impl<T: ?Sized + Send> Sync for Mutex<T>

Auto Trait Implementations§

§

impl<T> !Freeze for Mutex<T>

§

impl<T> !RefUnwindSafe for Mutex<T>

§

impl<T> Unpin for Mutex<T>
where T: Unpin + ?Sized,

§

impl<T> UnwindSafe for Mutex<T>
where T: UnwindSafe + ?Sized,

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<!> for T

Source§

fn from(t: !) -> T

Converts to this type from the input type.
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<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.