package async_kernel
Module Throttle.T2
We use a phantom type to distinguish between throttles, which have max_concurrent_jobs >= 1, and sequencers, which have max_concurrent_jobs = 1. All operations are available on both. We make the distinction because it is sometimes useful to know from the type of a throttle that it is a sequencer and that at most one job can be running at a time.
val sexp_of_t :
('a -> Sexplib0.Sexp.t) ->
('kind -> Sexplib0.Sexp.t) ->
('a, 'kind) t ->
Sexplib0.Sexp.tinclude Core.Invariant.S2 with type ('a, 'b) t := ('a, 'b) t
val invariant :
'a Base__.Invariant_intf.inv ->
'b Base__.Invariant_intf.inv ->
('a, 'b) t Base__.Invariant_intf.inv