ref: 7c2f25e309226a9506ea4b37e94e560017e83994
dir: /lib/thread/futex+freebsd.myr/
use sys use "common" pkg thread = const ftxwait : (uaddr : uint64#, val : uint64, timeout : sys.timespec# -> int) const ftxwake : (uaddr : uint64# -> int) ;; const ftxwait = {uaddr, val, timeout if timeout == Zptr -> sys.umtx_op((uaddr : void#), sys.Umtxwaituintpriv, (val : uint64), Zptr, Zptr) ;; var ut : sys._umtx_time = [ ._timeout = timeout# ._flags = sys.Umtxabstime ._clockid = 1 /* CLOCK_MONOTONIC. Not exported from sys. */ ] -> sys.umtx_op((uaddr : void#), sys.Umtxwaituintpriv, (val : uint64), (sys.sizeof(sys._umtx_time) : void#), &ut) } const ftxwake = {uaddr -> sys.umtx_op((uaddr : void#), sys.Umtxwakepriv, 1, Zptr, Zptr) }