sig
type 'a task
type 'a status = Timeout | Canceled | Result of 'a | Failed of exn
type 'a running =
Waiting
| Running of (unit -> unit)
| Finished of 'a Task.status
val error : exn -> string
val start : 'a Task.task -> unit
val cancel : 'a Task.task -> unit
val wait : 'a Task.task -> 'a Task.status
val ping : 'a Task.task -> 'a Task.running
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 : ('a -> 'b) -> 'a -> 'b Task.task
val todo : (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
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
val run : unit Task.task -> unit
type server
val server : ?stages:int -> ?procs:int -> unit -> Task.server
val spawn : Task.server -> ?stage:int -> unit Task.task -> 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 scheduled : Task.server -> int
val terminated : Task.server -> int
val on_idle : ((unit -> bool) -> unit) Pervasives.ref
end