1#ifndef SBL_PATTERNS_SYNCHRONIZATION_CRITICAL_SECTION_HPP_
2#define SBL_PATTERNS_SYNCHRONIZATION_CRITICAL_SECTION_HPP_
17namespace synchronization {
74 const uint32_t saved_primask_;
91#define CRITICAL_SECTION \
92 if (auto cs = sbl::patterns::synchronization::CriticalSection(); true)
ARM Cortex-M RAII critical section using PRIMASK.
~CriticalSection()
Destructor - restore ARM PRIMASK state.
CriticalSection & operator=(const CriticalSection &)=delete
CriticalSection()
Construct critical section and disable ARM interrupts.
CriticalSection & operator=(CriticalSection &&)=delete
CriticalSection(CriticalSection &&)=delete
CriticalSection(const CriticalSection &)=delete
ARM Cortex-M interrupt control primitives.
void restore(uint32_t saved_state)
Restore ARM interrupt state.
Root namespace for all Sound Byte Libs functionality.