# Module Limiter.Throttle

    module Throttle: sig .. end

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.

    type t = private Limiter.limiter

    val create_exn : now:Time.t -> max_concurrent_jobs:int -> t

    val try_start_job : t -> now:Time.t -> [ `Max_concurrent_jobs_running | `Start ]

    val finish_job : t -> now:Time.t -> unit