type t
type task
= Task.t
type task_result
type allocator
type resource
type config
type 'a thread
type trace
=
|
Run of
{
ready : time;
start : time;
end_ : time;
outcome : task_result;
}
Skipped of [ `Done_already | `Missing_dep | `Allocation_error of string ]
type time
= float
type event
Init of
dag : t;
needed : task list;
already_done : task list;
Task_ready of task
Task_started of task * resource
Task_ended of task_result
Task_skipped of task * [ `Done_already | `Missing_dep | `Allocation_error of string ]
class type logger = object ... end
val nb_tasks : t ‑> int
val mem_task : t ‑> task ‑> bool
val empty : t
val add_task : t ‑> task ‑> t
val add_dep : t ‑> task ‑> on:task ‑> t
val dot_output : t ‑> (task ‑> Graph.Graphviz.DotAttributes.vertex list) ‑> ((task * task) ‑> Graph.Graphviz.DotAttributes.edge list) ‑> string ‑> unit
val run : ?logger:logger ‑> ?goals:task list ‑> config ‑> allocator ‑> t ‑> trace Core_kernel.Std.String.Map.t thread