sig
module Condition :
sig
type t = Condition.t
val create : unit -> t
val wait : t -> Mutex.t -> unit
val signal : t -> unit
val broadcast : t -> unit
end
module Event :
sig
type 'a channel = 'a Event.channel
val new_channel : unit -> 'a channel
type 'a event = 'a Event.event
val send : 'a channel -> 'a -> unit event
val receive : 'a channel -> 'a event
val always : 'a -> 'a event
val choose : 'a event list -> 'a event
val wrap : 'a event -> ('a -> 'b) -> 'b event
val wrap_abort : 'a event -> (unit -> unit) -> 'a event
val guard : (unit -> 'a event) -> 'a event
val sync : 'a event -> 'a
val select : 'a event list -> 'a
val poll : 'a event -> 'a option
end
module Mutex :
sig
type t = Mutex.t
val create : unit -> t
val lock : t -> unit
val try_lock : t -> bool
val unlock : t -> unit
val synchronize : ?lock:t -> ('a -> 'b) -> 'a -> 'b
val make : unit -> Extlib.Concurrent.lock
end
module RMutex :
sig
type t = Extlib_threads.RMutex.t
val create : unit -> t
val lock : t -> unit
val try_lock : t -> bool
val unlock : t -> unit
val synchronize : ?lock:t -> ('a -> 'b) -> 'a -> 'b
val make : unit -> Extlib.Concurrent.lock
end
module Thread :
sig
type t = Thread.t
val create : ('a -> 'b) -> 'a -> t
val self : unit -> t
val id : t -> int
val exit : unit -> unit
val kill : t -> 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 select :
Unix.file_descr list ->
Unix.file_descr list ->
Unix.file_descr list ->
float ->
Unix.file_descr list * Unix.file_descr list * Unix.file_descr list
val wait_pid : int -> int * Unix.process_status
val yield : unit -> unit
val sigmask : Unix.sigprocmask_command -> int list -> int list
val wait_signal : int list -> int
end
end