esp32-nmea2000-obp60/lib/queue/GwSynchronized.h

17 lines
413 B
C++

#pragma once
#include <freertos/semphr.h>
class GwSynchronized{
private:
SemaphoreHandle_t *locker;
public:
GwSynchronized(SemaphoreHandle_t *locker){
this->locker=locker;
xSemaphoreTake(*locker, portMAX_DELAY);
}
~GwSynchronized(){
xSemaphoreGive(*locker);
}
};
#define GWSYNCHRONIZED(locker) GwSynchronized __xlock__(locker);