sig
module T2 :
sig
type ('a, 'kind) t
val invariant :
'a Core_kernel.Invariant_intf.inv ->
'b Core_kernel.Invariant_intf.inv ->
('a, 'b) t Core_kernel.Invariant_intf.inv
val sexp_of_t :
('a -> Sexplib.Sexp.t) ->
('kind -> Sexplib.Sexp.t) ->
('a, 'kind) Throttle.T2.t -> Sexplib.Sexp.t
end
type 'a t = ('a, [ `throttle ]) Throttle.T2.t
val invariant :
'a Core_kernel.Invariant_intf.inv -> 'a t Core_kernel.Invariant_intf.inv
val create :
continue_on_error:bool -> max_concurrent_jobs:int -> unit Throttle.t
val create_with : continue_on_error:bool -> 'a list -> 'a Throttle.t
type 'a outcome = [ `Aborted | `Ok of 'a | `Raised of exn ]
val enqueue' :
('a, 'c) Throttle.T2.t ->
('a -> 'b Deferred.t) -> 'b Throttle.outcome Deferred.t
val enqueue :
('a, 'c) Throttle.T2.t -> ('a -> 'b Deferred.t) -> 'b Deferred.t
val prior_jobs_done : ('a, 'b) Throttle.T2.t -> unit Deferred.t
val max_concurrent_jobs : ('a, 'b) Throttle.T2.t -> int
val num_jobs_running : ('a, 'b) Throttle.T2.t -> int
val num_jobs_waiting_to_start : ('a, 'b) Throttle.T2.t -> int
val capacity_available : ('a, 'b) Throttle.T2.t -> unit Deferred.t
val kill : 'a Throttle.t -> unit
val is_dead : 'a Throttle.t -> bool
val at_kill : 'a Throttle.t -> ('a -> unit Deferred.t) -> unit
val cleaned : 'a Throttle.t -> unit Deferred.t
module Sequencer :
sig
type 'a t = ('a, [ `sequencer ]) Throttle.T2.t
val create : ?continue_on_error:bool -> 'a -> 'a Throttle.Sequencer.t
val sexp_of_t :
('a -> Sexplib.Sexp.t) -> 'a Throttle.Sequencer.t -> Sexplib.Sexp.t
end
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a Throttle.t -> Sexplib.Sexp.t
val sexp_of_outcome :
('a -> Sexplib.Sexp.t) -> 'a Throttle.outcome -> Sexplib.Sexp.t
end