Module Jack.Wait

Lightweight one-shot thread synchronization. Backed by a POSIX semaphore on Unix/macOS (via GCD dispatch semaphores on macOS) and a mutex+condition variable on Windows. One thread calls wait to block; another calls signal to unblock it.

type t
val create : unit -> t
val signal : t -> unit
val wait : t -> unit