19 atomic(uint8) _ps_lock;
22_Static_assert(
sizeof(Futex) <=
sizeof(int64),
"Invalid Futex structure packing");
24void futexInit(_Out_ Futex* ftx, int32 val);
26_meta_inline int32 futexVal(_Inout_ Futex* ftx)
28 return atomicLoad(int32, &ftx->val, Relaxed);
33_meta_inline
void futexSet(_Inout_ Futex* ftx, int32 val)
35 atomicStore(int32, &ftx->val, val, Relaxed);
41int futexWait(_Inout_ Futex* ftx, int32 oldval, int64 timeout);
43void futexWake(_Inout_ Futex* ftx);
44void futexWakeMany(_Inout_ Futex* ftx,
int count);
45void futexWakeAll(_Inout_ Futex* ftx);