aboutsummaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2023-01-04 11:47:56 +0100
committerAlex Auvolat <alex@adnab.me>2023-01-04 11:47:56 +0100
commit13c554988623663a9416439baf4f85f6fa91e502 (patch)
tree32a9c1b91b183cb9538e3d334a9713bc68f7f835 /src/util
parent4eb8ca3a528dae2848141f5cc3eb607eb7d40114 (diff)
downloadgarage-13c554988623663a9416439baf4f85f6fa91e502.tar.gz
garage-13c554988623663a9416439baf4f85f6fa91e502.zip
Remove token_bucket.rs
Diffstat (limited to 'src/util')
-rw-r--r--src/util/lib.rs1
-rw-r--r--src/util/token_bucket.rs40
2 files changed, 0 insertions, 41 deletions
diff --git a/src/util/lib.rs b/src/util/lib.rs
index be82061f..d35ca72f 100644
--- a/src/util/lib.rs
+++ b/src/util/lib.rs
@@ -15,6 +15,5 @@ pub mod metrics;
pub mod migrate;
pub mod persister;
pub mod time;
-pub mod token_bucket;
pub mod tranquilizer;
pub mod version;
diff --git a/src/util/token_bucket.rs b/src/util/token_bucket.rs
deleted file mode 100644
index cc0dfa1f..00000000
--- a/src/util/token_bucket.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-use std::time::{Duration, Instant};
-
-use tokio::time::sleep;
-
-pub struct TokenBucket {
- // Replenish rate: number of tokens per second
- replenish_rate: u64,
- // Current number of tokens
- tokens: u64,
- // Last replenish time
- last_replenish: Instant,
-}
-
-impl TokenBucket {
- pub fn new(replenish_rate: u64) -> Self {
- Self {
- replenish_rate,
- tokens: 0,
- last_replenish: Instant::now(),
- }
- }
-
- pub async fn take(&mut self, tokens: u64) {
- while self.tokens < tokens {
- let needed = tokens - self.tokens;
- let delay = (needed as f64) / (self.replenish_rate as f64);
- sleep(Duration::from_secs_f64(delay)).await;
- self.replenish();
- }
- self.tokens -= tokens;
- }
-
- pub fn replenish(&mut self) {
- let now = Instant::now();
- let new_tokens =
- ((now - self.last_replenish).as_secs_f64() * (self.replenish_rate as f64)) as u64;
- self.tokens += new_tokens;
- self.last_replenish = now;
- }
-}