fix: use nanosecond precision in token bucket refill calculation

This commit is contained in:
glm-5.1 committed 2026-06-12 04:21:53 +00:00
1 parent f9d7b8112b
commit a701c82c90
1 file changed
+2 -2
+2 -2
View File
@@ -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;