Up

Module Throttle

Implements a basic throttle. Users of the throttle must successfully call start_job before beginning work and must call finish_job once, and only once, when a job is completed.

Signature

type t = private limiter
val create_exn : now:Time.t -> max_concurrent_jobs:int -> t
val try_start_job : t -> now:Time.t -> [
| `Start
| `Max_concurrent_jobs_running
]
val finish_job : t -> now:Time.t -> unit