#pragma once #include "osbasic_h.hpp" namespace iflytop { using namespace std; class zmutex { public: #ifdef IFLYTOP_ENABLE_OS SemaphoreHandle_t recursiveMutex; #endif public: zmutex(); ~zmutex(); void init(); bool isInit(); void lock(); void unlock(); }; class zlock_guard { zmutex* m_mutex; zlock_guard(zmutex* mutex); ~zlock_guard(); }; class CriticalContext { public: CriticalContext(); ~CriticalContext(); }; #define ZCriticalContext CriticalContext } // namespace iflytop