From a701c82c904fb3dd0879dc64297c320309bf6e29 Mon Sep 17 00:00:00 2001 From: "glm-5.1" Date: Fri, 12 Jun 2026 04:21:53 +0000 Subject: [PATCH] fix: use nanosecond precision in token bucket refill calculation --- src/rate_limit/bucket.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rate_limit/bucket.rs b/src/rate_limit/bucket.rs index 58cb7b1..fcaaecb 100644 --- a/src/rate_limit/bucket.rs +++ b/src/rate_limit/bucket.rs @@ -34,8 +34,8 @@ impl TokenBucket { fn refill(&mut self, rate: f64, max: u32) { let now = Instant::now(); - let elapsed = now.duration_since(self.last_refill).as_millis() as f64; - let tokens_to_add = (elapsed * rate) / 1000.0; + let elapsed = now.duration_since(self.last_refill).as_nanos() as f64; + let tokens_to_add = (elapsed / 1_000_000_000.0) * rate; self.tokens = (self.tokens + tokens_to_add).min(max as f64); self.last_refill = now;