forked from LeenkxTeam/LNXSDK
26 lines
667 B
C
26 lines
667 B
C
|
#include <kinc/threads/event.h>
|
||
|
|
||
|
void kinc_event_init(kinc_event_t *event, bool auto_clear) {
|
||
|
event->impl.event = CreateEvent(0, auto_clear ? FALSE : TRUE, 0, 0);
|
||
|
}
|
||
|
|
||
|
void kinc_event_destroy(kinc_event_t *event) {
|
||
|
CloseHandle(event->impl.event);
|
||
|
}
|
||
|
|
||
|
void kinc_event_signal(kinc_event_t *event) {
|
||
|
SetEvent(event->impl.event);
|
||
|
}
|
||
|
|
||
|
void kinc_event_wait(kinc_event_t *event) {
|
||
|
WaitForSingleObject(event->impl.event, INFINITE);
|
||
|
}
|
||
|
|
||
|
bool kinc_event_try_to_wait(kinc_event_t *event, double seconds) {
|
||
|
return WaitForSingleObject(event->impl.event, (DWORD)(seconds * 1000.0)) != WAIT_TIMEOUT;
|
||
|
}
|
||
|
|
||
|
void kinc_event_reset(kinc_event_t *event) {
|
||
|
ResetEvent(event->impl.event);
|
||
|
}
|