firmware/src/concurrency/BinarySemaphoreFreeRTOS.h

30 lines
431 B
C
Raw Normal View History

2020-10-11 01:18:47 +00:00
#pragma once
#include "../freertosinc.h"
namespace concurrency
{
#ifdef HAS_FREE_RTOS
class BinarySemaphoreFreeRTOS
{
SemaphoreHandle_t semaphore;
public:
BinarySemaphoreFreeRTOS();
~BinarySemaphoreFreeRTOS();
/**
* Returns false if we timed out
*/
bool take(uint32_t msec);
void give();
void giveFromISR(BaseType_t *pxHigherPriorityTaskWoken);
};
#endif
} // namespace concurrency