From 3ba05232274643ddb112039542563ebbedb4f796 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Mon, 12 Jan 2026 20:34:40 -0500 Subject: [PATCH] details on Interval_limiter --- src/lib/interval_limiter.ml | 4 +++- src/lib/interval_limiter.mli | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/interval_limiter.ml b/src/lib/interval_limiter.ml index 456de0f6..37eff85a 100644 --- a/src/lib/interval_limiter.ml +++ b/src/lib/interval_limiter.ml @@ -3,6 +3,8 @@ type t = { last: Mtime.t Atomic.t; } +let[@inline] min_interval self = self.min_interval + let create ~min_interval () : t = { min_interval; last = Atomic.make Mtime.min_stamp } @@ -12,7 +14,7 @@ let make_attempt (self : t) : bool = let elapsed = Mtime.span last now in if Mtime.Span.compare elapsed self.min_interval >= 0 then (* attempts succeeds, unless another thread updated [self.last] - in the mean time *) + in the mean time, so we return [true] iff the CAS was successful *) Atomic.compare_and_set self.last last now else false diff --git a/src/lib/interval_limiter.mli b/src/lib/interval_limiter.mli index 8b63a169..b2cc11dd 100644 --- a/src/lib/interval_limiter.mli +++ b/src/lib/interval_limiter.mli @@ -5,6 +5,8 @@ type t val create : min_interval:Mtime.span -> unit -> t +val min_interval : t -> Mtime.span + val make_attempt : t -> bool (** [make_attempt lim] returns [true] if the last successful attempt was more than [min_interval] ago, as measured by mtime. If so, this counts as the new