46typedef struct UIEvent UIEvent;
102void _eventInit(_Out_
Event* e, uint32 flags);
117#define eventInit(e, ...) _eventInit(e, opt_flags(__VA_ARGS__))
125#define eventSignal(e) eventSignalMany(e, 1)
bool eventWaitTimeout(Event *e, uint64 timeout)
SharedEvent * sheventCreate(uint32 flags)
bool eventReset(Event *e)
bool eventSignalAll(Event *e)
void sheventRelease(SharedEvent **pev)
bool eventSignalLock(Event *e)
void eventDestroy(Event *e)
EVENTINITFUNC_FLAGS
Event initialization flags.
SharedEvent * sheventAcquire(SharedEvent *ev)
bool eventSignalMany(Event *e, int32 count)
@ EV_UIEvent
May be woken up early by platform-specific UI events.
@ EV_Spin
Use adaptive spinning instead of going straight to kernel wait.
#define timeForever
Maximum representable time value (approximately year 294,276 CE)
AdaptiveSpin aspin
Adaptive spin state (disabled by default)
atomic(int32) waiters
Number of threads currently waiting.
UIEvent * uiev
Platform-specific UI event integration (optional)
Futex ftx
Futex for kernel-level synchronization.
Event ev
Underlying event.
atomic(uintptr) ref
Reference count.