36 namespace rp{
namespace hal{
49 Event(
bool isAutoReset =
true,
bool isSignal =
false)
58 _event = CreateEvent(NULL, isAutoReset?FALSE:TRUE, isSignal?TRUE:FALSE, NULL);
66 pthread_condattr_setclock(&
_cond_attr, CLOCK_MONOTONIC);
78 void set(
bool isSignal =
true )
106 unsigned long wait(
unsigned long timeout = 0xFFFFFFFF )
109 switch (WaitForSingleObject(_event, timeout==0xFFFFFFF?INFINITE:(DWORD)timeout))
126 if (timeout == 0xFFFFFFFF){
130 int timewaitresult = 0;
134 wait_time.tv_sec = timeout / 1000;
135 wait_time.tv_nsec = (timeout%1000)*1000000ULL;
140 clock_gettime(CLOCK_MONOTONIC, &wait_time);
142 wait_time.tv_sec += timeout / 1000;
143 wait_time.tv_nsec += (timeout%1000)*1000000ULL;
145 if (wait_time.tv_nsec >= 1000000000)
148 wait_time.tv_nsec -= 1000000000;
153 switch (timewaitresult)