37#ifndef _UTILS_ATOMIC_HXX_
38#define _UTILS_ATOMIC_HXX_
74#elif defined(ESP_PLATFORM)
76#include "freertos_includes.h"
98 portENTER_CRITICAL_SAFE(&mux);
103 portEXIT_CRITICAL_SAFE(&mux);
108 portMUX_TYPE mux = portMUX_INITIALIZER_UNLOCKED;
146 os_mutex_t
mu_ = OS_RECURSIVE_MUTEX_INITIALIZER;
187#define AtomicHolder(l) int error_omitted_lock_holder_variable[-1]
See OSMutexLock in os/OS.hxx.
Atomic * parent_
Parent mutex we are holding.
AtomicHolder(Atomic *parent)
Constructor.
~AtomicHolder()
Destructor. Releases the mutex as a side effect.
Lightweight locking class for protecting small critical sections.
os_mutex_t mu_
Mutex that protects.
OS_INLINE int os_mutex_lock(os_mutex_t *mutex)
Lock a mutex.
OS_INLINE int os_mutex_unlock(os_mutex_t *mutex)
Unock a mutex.