sig
type 'a task
type 'a status = Timeout of int | Canceled | Result of 'a | Failed of exn
val error : exn -> string
val wait : 'a Task.task -> 'a Task.status
val map : ('a -> 'b) -> 'a Task.status -> 'b Task.status
val pretty :
(Format.formatter -> 'a -> unit) ->
Format.formatter -> 'a Task.status -> unit
val nop : unit Task.task
val return : 'a -> 'a Task.task
val raised : exn -> 'a Task.task
val canceled : unit -> 'a Task.task
val failed :
('a, Format.formatter, unit, 'b Task.task) Pervasives.format4 -> 'a
val call : ?canceled:('a -> unit) -> ('a -> 'b) -> 'a -> 'b Task.task
val later :
?canceled:('a -> unit) -> ('a -> 'b Task.task) -> 'a -> 'b Task.task
val todo :
?canceled:(unit -> unit) -> (unit -> 'a Task.task) -> 'a Task.task
val status : 'a Task.status -> 'a Task.task
val bind : 'a Task.task -> ('a Task.status -> 'b Task.task) -> 'b Task.task
val sequence : 'a Task.task -> ('a -> 'b Task.task) -> 'b Task.task
val job : 'a Task.task -> unit Task.task
val finally : 'a Task.task -> ('a Task.status -> unit) -> 'a Task.task
val callback : 'a Task.task -> ('a Task.status -> unit) -> unit Task.task
type 'a async = Yield | Wait of int | Return of 'a
type coin = Coin | Kill
val async : (Task.coin -> 'a Task.status Task.async) -> 'a Task.task
val ( >>> ) :
'a Task.task -> ('a Task.status -> 'b Task.task) -> 'b Task.task
val ( >>= ) : 'a Task.task -> ('a -> 'b Task.task) -> 'b Task.task
val ( >>? ) : 'a Task.task -> ('a Task.status -> unit) -> 'a Task.task
val ( >>! ) : 'a Task.task -> ('a Task.status -> unit) -> unit Task.task
type mutex
val mutex : unit -> Task.mutex
val sync : Task.mutex -> (unit -> 'a Task.task) -> 'a Task.task
val command :
?timeout:int ->
?time:float Pervasives.ref ->
?stdout:Buffer.t ->
?stderr:Buffer.t -> string -> string array -> int Task.task
type 'a shared
val shared :
descr:string -> retry:bool -> (unit -> 'a Task.task) -> 'a Task.shared
val share : 'a Task.shared -> 'a Task.task
type thread
val thread : 'a Task.task -> Task.thread
val cancel : Task.thread -> unit
val progress : Task.thread -> bool
val is_running : Task.thread -> bool
val run : Task.thread -> unit
type pool
val pool : unit -> Task.pool
val add : Task.pool -> Task.thread -> unit
val iter : (Task.thread -> unit) -> Task.pool -> unit
val flush : Task.pool -> unit
val size : Task.pool -> int
type server
val server : ?stages:int -> ?procs:int -> unit -> Task.server
val spawn :
Task.server -> ?pool:Task.pool -> ?stage:int -> Task.thread -> unit
val launch : Task.server -> unit
val cancel_all : Task.server -> unit
val set_procs : Task.server -> int -> unit
val on_server_activity : Task.server -> (unit -> unit) -> unit
val on_server_start : Task.server -> (unit -> unit) -> unit
val on_server_stop : Task.server -> (unit -> unit) -> unit
val on_server_wait : Task.server -> (unit -> unit) -> unit
val scheduled : Task.server -> int
val terminated : Task.server -> int
val waiting : Task.server -> int option
val on_idle : ((unit -> bool) -> unit) Pervasives.ref
end