Module Lwt_throttle.Make
Parameters
H : Stdlib.Hashtbl.HashedType
Signature
type key= H.ttype t
val create : rate:int -> max:int -> n:int -> tCreates a rate limiter.
- parameter rate
Maximum number of promise resolutions per second, per channel.
- parameter max
Maximum number of pending promises allowed at once, over all channels.
- parameter n
Initial size of the internal channel hash table. This should be approximately the number of different channels that will be used.
val wait : t -> key -> bool Lwt.tLwt_throttle.wait limiter channelreturns a new promise associated with the given rate limiter and channel.If the maximum number of pending promises for
limiterhas not been reached, the promise starts pending. It will be resolved withtrueat some future time, such that the rate limit oflimiteris not exceeded, with respect to other promises in the samechannel.If the maximum number of pending promises has been reached, the returned promise is already resolved with
false.