CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
Loading...
Searching...
No Matches
cdc::core::RecursiveMutexGuard Class Reference

Scoped guard for a FreeRTOS recursive mutex. More...

#include <Raii.h>

Public Member Functions

 RecursiveMutexGuard (SemaphoreHandle_t sem) noexcept
 Take sem blocking until acquired; no-op when sem is nullptr.
 ~RecursiveMutexGuard () noexcept
 RecursiveMutexGuard (const RecursiveMutexGuard &)=delete
RecursiveMutexGuardoperator= (const RecursiveMutexGuard &)=delete

Detailed Description

Scoped guard for a FreeRTOS recursive mutex.

Takes the recursive semaphore on construction and gives it back on destruction. Tolerates a nullptr handle (no-op), so it can guard an optional/opt-in lock. The same task may nest acquisitions, which a plain MutexGuard would self-deadlock on.

Not safe to call from ISR context.

Definition at line 245 of file Raii.h.

Constructor & Destructor Documentation

◆ RecursiveMutexGuard() [1/2]

cdc::core::RecursiveMutexGuard::RecursiveMutexGuard ( SemaphoreHandle_t sem)
inlineexplicitnoexcept

Take sem blocking until acquired; no-op when sem is nullptr.

Definition at line 248 of file Raii.h.

Referenced by operator=(), and RecursiveMutexGuard().

◆ ~RecursiveMutexGuard()

cdc::core::RecursiveMutexGuard::~RecursiveMutexGuard ( )
inlinenoexcept

Definition at line 253 of file Raii.h.

◆ RecursiveMutexGuard() [2/2]

cdc::core::RecursiveMutexGuard::RecursiveMutexGuard ( const RecursiveMutexGuard & )
delete

References RecursiveMutexGuard().

Member Function Documentation

◆ operator=()

RecursiveMutexGuard & cdc::core::RecursiveMutexGuard::operator= ( const RecursiveMutexGuard & )
delete

References RecursiveMutexGuard().


The documentation for this class was generated from the following file:
  • components/cdc_core/include/cdc_core/Raii.h