: (unit -> unit) option | ; | ||||
: Types.Job_pool.t | ; | ||||
: Types.Job_queue.t | ; | ||||
: Types.Job_queue.t | ; | ||||
: Types.Execution_context.t | ; | ||||
: Types.Execution_context.t | ; | ||||
: (Core_kernel.Std.Exn.t * Core_kernel.Std.Sexp.t) option | ; | ||||
: int | ; | ||||
: Import.Time_ns.t | ; | ||||
: (unit -> unit) list | ; | ||||
: Import.Time_ns.Span.t | ; | ||||
: int | ; | ||||
: Core_kernel.Std.read_write Types.Time_source.t1 | ; | ||||
: Types.External_job.t Core_kernel.Std.Thread_safe_queue.t | ; | ||||
: unit -> unit | ; | ||||
: (Priority.t -> unit) option | ; | ||||
: (Import.Time_ns.t -> unit) option | ; | ||||
: unit Types.Ivar.t option | ; | ||||
: bool | ; | ||||
: Import.Max_num_jobs_per_priority_per_cycle.t | ; | ||||
: bool | ; |
: (unit -> unit) option | ; | ||||
: Job_pool.t | ; | ||||
: Job_queue.t | ; | ||||
: Job_queue.t | ; | ||||
: Execution_context.t | ; | ||||
: Execution_context.t | ; | ||||
: (Core_kernel.Std.Exn.t * Core_kernel.Std.Sexp.t) option | ; | ||||
: int | ; | ||||
: Import.Time_ns.t | ; | ||||
: (unit -> unit) list | ; | ||||
: Import.Time_ns.Span.t | ; | ||||
: int | ; | ||||
: Core_kernel.Std.read_write Time_source.T1.t | ; | ||||
: External_job.t Core_kernel.Std.Thread_safe_queue.t | ; | ||||
: unit -> unit | ; | ||||
: (Priority.t -> unit) option | ; | ||||
: (Import.Time_ns.t -> unit) option | ; | ||||
: unit Types.Ivar.t Core_kernel.Std.sexp_opaque option | ; | ||||
: bool | ; | ||||
: Import.Max_num_jobs_per_priority_per_cycle.t | ; | ||||
: bool | ; |
start_cycle t ~max_num_jobs_per_priority
enables subsequent calls of run_jobs
to run up to max_num_jobs_per_priority
jobs of each priority level.
run_jobs t
removes jobs from t
one at a time and runs them, stopping as soon
as an unhandled exception is raised, or when no more jobs can be run at any priority,
as per ~max_num_jobs_per_priority
.