Module Bistro_engine.Scheduler.DAG

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