#pragma once #include "zbasic.h" #include "FreeRTOS.h" #include "semphr.h" #include namespace iflytop { class zmutex { public: SemaphoreHandle_t recursiveMutex; const char* name = nullptr; public: zmutex(const char* name); ~zmutex(); void init(); bool isInit(); void lock(); void unlock(); }; class zlock_guard { zmutex& m_mutex; public: zlock_guard(zmutex& mutex); ~zlock_guard(); }; } // namespace iflytop