sig
val create : ('a -> unit) -> 'a -> string -> Thread.t
val main : unit -> unit
val shutdown : unit -> unit
exception Exit
val join_all : unit -> unit
val running : string -> Thread.t -> bool
type priority = Blocking | Maybe_blocking | Non_blocking
val scheduler : Tutils.priority Duppy.scheduler
val need_non_blocking_queue : unit -> unit
val wait : Condition.t -> Mutex.t -> (unit -> bool) -> unit
val mutexify : Mutex.t -> ('a -> 'b) -> 'a -> 'b
exception Timeout
val wait_for :
?mutex:Mutex.t ->
?log:(string -> unit) ->
[ `Both | `Read | `Write ] -> Unix.file_descr -> float -> unit
val finalize : k:(unit -> unit) -> (unit -> 'a) -> 'a
val seems_locked : Mutex.t -> bool
val lazy_cell : (unit -> 'a) -> unit -> 'a
val stoppable_thread :
((unit -> bool) * (unit -> unit) -> unit) ->
string -> (unit -> unit) * (unit -> unit)
end