diff options
| author | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2022-08-24 12:22:01 +0200 |
|---|---|---|
| committer | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2022-08-24 12:22:01 +0200 |
| commit | 293223d0cf504c6bf0f314dcdabced1e828906dd (patch) | |
| tree | 36d6c68f75579a3990ab4ec6fc1ade523ed81297 /src | |
| parent | f71c54574687681d0ea61175e3b78a823bfb5dee (diff) | |
| download | rust-293223d0cf504c6bf0f314dcdabced1e828906dd.tar.gz rust-293223d0cf504c6bf0f314dcdabced1e828906dd.zip | |
Tune drop_excess_capacity
Diffstat (limited to 'src')
| -rw-r--r-- | src/concurrency_limiter.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/concurrency_limiter.rs b/src/concurrency_limiter.rs index d966ea323eb..ba9e82447dd 100644 --- a/src/concurrency_limiter.rs +++ b/src/concurrency_limiter.rs @@ -152,14 +152,14 @@ mod state { fn drop_excess_capacity(&mut self) { self.assert_invariants(); - if self.active_jobs == self.pending_jobs { - // Drop all excess tokens - self.tokens.truncate(std::cmp::max(self.active_jobs, 1)); - } else { - // Keep some excess tokens to satisfy requests faster - const MAX_EXTRA_CAPACITY: usize = 2; - self.tokens.truncate(std::cmp::max(self.active_jobs + MAX_EXTRA_CAPACITY, 1)); - } + + // Drop all tokens that can never be used anymore + self.tokens.truncate(std::cmp::max(self.pending_jobs, 1)); + + // Keep some excess tokens to satisfy requests faster + const MAX_EXTRA_CAPACITY: usize = 2; + self.tokens.truncate(std::cmp::max(self.active_jobs + MAX_EXTRA_CAPACITY, 1)); + self.assert_invariants(); } } |
