- To wait for a group of jobs to complete, call [wait group].
- *)
-
-module type Key = sig
- type t
- val compare : t -> t -> int
- val to_string : t -> string
-end
-
-module type Jobs = sig
- type key
- type group
-
- val new_group : unit -> group
- (** Create a new empty jobs group. *)
-
- val start : group -> key -> (unit -> unit) -> unit
- (** [start group key f] submits a job to run in the background.
- The [key] ensures that two jobs with the same key cannot run
- at the same time (across all groups). *)