sig
  type t = Thread.t
  val create : ('-> 'b) -> '-> t
  val self : unit -> t
  val id : t -> int
  val exit : unit -> unit
  val delay : float -> unit
  val join : t -> unit
  val wait_read : Unix.file_descr -> unit
  val wait_write : Unix.file_descr -> unit
  val wait_timed_read : Unix.file_descr -> float -> bool
  val wait_timed_write : Unix.file_descr -> float -> bool
  val yield : unit -> unit
  val sigmask : Signal.sigprocmask_command -> Signal.t list -> Signal.t list
  val wait_signal : Signal.t list -> int
  val threads_have_been_created : unit -> bool
  val num_threads : unit -> int option
  val block_forever : unit -> 'a
  val ounit_tests : unit -> OUnit.test
end