ELEC-C7222
Libraries for ELEC C7222 Course Work
Loading...
Searching...
No Matches
c7222::FreeRtosRecursiveMutex Class Reference

Ownership-based wrapper for a recursive mutex with destructor cleanup. More...

#include <freertos_mutex.hpp>

Inheritance diagram for c7222::FreeRtosRecursiveMutex:
Inheritance graph
Collaboration diagram for c7222::FreeRtosRecursiveMutex:
Collaboration graph

Public Member Functions

 FreeRtosRecursiveMutex ()
 Construct and initialize a recursive mutex.
 
bool Initialize ()
 Initialize (or re-initialize) the recursive mutex.
 
 ~FreeRtosRecursiveMutex ()
 Destroy recursive mutex resources if initialized.
 
bool Lock (std::uint32_t ticks_to_wait=0)
 Acquire the recursive mutex.
 
bool TryLock ()
 Non-blocking lock attempt.
 
bool Unlock ()
 Release one recursion level.
 
bool IsValid () const
 
- Public Member Functions inherited from c7222::NonCopyable
 NonCopyable (const NonCopyable &)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
 NonCopyable (NonCopyable &&)=default
 
NonCopyableoperator= (NonCopyable &&)=default
 
- Public Member Functions inherited from c7222::NonMovable
 NonMovable (const NonMovable &)=default
 
NonMovableoperator= (const NonMovable &)=default
 
 NonMovable (NonMovable &&)=delete
 
NonMovableoperator= (NonMovable &&)=delete
 

Additional Inherited Members

- Protected Member Functions inherited from c7222::NonCopyableNonMovable
 NonCopyableNonMovable ()=default
 
 ~NonCopyableNonMovable ()=default
 
- Protected Member Functions inherited from c7222::NonCopyable
 NonCopyable ()=default
 
 ~NonCopyable ()=default
 
- Protected Member Functions inherited from c7222::NonMovable
 NonMovable ()=default
 
 ~NonMovable ()=default
 

Detailed Description

Ownership-based wrapper for a recursive mutex with destructor cleanup.

A recursive mutex may be locked multiple times by the same owner and must be unlocked the same number of times.

Typical usage:

if(mutex.Lock(10)) {
(void)mutex.Lock(10); // same owner re-enters
(void)mutex.Unlock(); // release one level
(void)mutex.Unlock(); // release final level
}
Ownership-based wrapper for a recursive mutex with destructor cleanup.
Definition freertos_mutex.hpp:75
bool Lock(std::uint32_t ticks_to_wait=0)
Acquire the recursive mutex.
bool Unlock()
Release one recursion level.

Constructor & Destructor Documentation

◆ FreeRtosRecursiveMutex()

c7222::FreeRtosRecursiveMutex::FreeRtosRecursiveMutex ( )

Construct and initialize a recursive mutex.

◆ ~FreeRtosRecursiveMutex()

c7222::FreeRtosRecursiveMutex::~FreeRtosRecursiveMutex ( )

Destroy recursive mutex resources if initialized.

Member Function Documentation

◆ Initialize()

bool c7222::FreeRtosRecursiveMutex::Initialize ( )

Initialize (or re-initialize) the recursive mutex.

◆ IsValid()

bool c7222::FreeRtosRecursiveMutex::IsValid ( ) const
Returns
true if the wrapper owns a valid recursive mutex handle.

◆ Lock()

bool c7222::FreeRtosRecursiveMutex::Lock ( std::uint32_t  ticks_to_wait = 0)

Acquire the recursive mutex.

Parameters
ticks_to_waitMax ticks to wait (0 = non-blocking).
Returns
true if acquired.

◆ TryLock()

bool c7222::FreeRtosRecursiveMutex::TryLock ( )

Non-blocking lock attempt.

◆ Unlock()

bool c7222::FreeRtosRecursiveMutex::Unlock ( )

Release one recursion level.


The documentation for this class was generated from the following file: