Up

module Lwt_throttle

: sig

Rate limiters

This module defines rate limiters. A rate limiter is parametrized by its limit and a maximum waiting time. The wait function will collaboratively hang for a delay necessary to respect the limit. If that delay exceeds the maximum waiting time, wait returns false; otherwise it returns true.

#
module type S = sig
#
type key
#
type t
#
val create : rate:int -> max:int -> n:int -> t

rate maximum number of connections per second
max maximum waiting time (in seconds)
n initial size of the hash table
#
val wait : t -> key -> bool Lwt.t

Returns false if maximum reached, true else
end
#
module Make : functor (H : Hashtbl.HashedType) -> S with type key = H.t
end