`sig
val have_anon_semaphores : unit -> bool
val sem_value_max : int
val sem_size : int
type container
type prefix = string
type anon_semaphore
type sem_open_flag = Netsys_posix.sem_open_flag = SEM_O_CREAT | SEM_O_EXCL
val container : Netsys_sem.prefix -> Netsys_sem.container
val create_container : Netsys_sem.prefix -> Netsys_sem.container
val prefix : Netsys_sem.container -> Netsys_sem.prefix
val drop : Netsys_sem.container -> unit
val unlink : Netsys_sem.prefix -> unit
val sem_init :
Netsys_sem.container ->
Netsys_types.memory -> int -> bool -> int -> Netsys_sem.anon_semaphore
val sem_destroy : Netsys_sem.container -> Netsys_sem.anon_semaphore -> unit
val as_sem :
Netsys_sem.container ->
Netsys_types.memory -> int -> Netsys_sem.anon_semaphore
val sem_getvalue : Netsys_sem.anon_semaphore -> int
val sem_post : Netsys_sem.anon_semaphore -> unit
type sem_wait_behavior =
Netsys_posix.sem_wait_behavior =
SEM_WAIT_BLOCK
| SEM_WAIT_NONBLOCK
val sem_wait :
Netsys_sem.anon_semaphore -> Netsys_sem.sem_wait_behavior -> unit
module Debug : sig val enable : bool Pervasives.ref end
val force_emulation : unit -> unit
end`