sig
  type semaphore
  val dummy : unit -> Netmcore_sem.semaphore
  val create : Netmcore_heap.mutator -> int -> Netmcore_sem.semaphore
  val destroy : Netmcore_sem.semaphore -> unit
  val getvalue : Netmcore_sem.semaphore -> int
  val post : Netmcore_sem.semaphore -> unit
  val wait : Netmcore_sem.semaphore -> Netsys_posix.sem_wait_behavior -> unit
end