fix math error with stats calc (#20253)

This commit is contained in:
Jeff Washington (jwash)
2021-09-27 11:55:19 -05:00
committed by GitHub
parent bc50fd4ad6
commit 46263d405e

View File

@ -82,11 +82,12 @@ impl BucketMapHolderStats {
fn ms_per_age<T: IndexValue>(&self, storage: &BucketMapHolder<T>) -> u64 { fn ms_per_age<T: IndexValue>(&self, storage: &BucketMapHolder<T>) -> u64 {
if !storage.get_startup() { if !storage.get_startup() {
let elapsed_ms = self.get_elapsed_ms_and_reset(); let elapsed_ms = self.get_elapsed_ms_and_reset();
let mut age_now = storage.current_age(); let age_now = storage.current_age();
let last_age = self.last_age.swap(age_now, Ordering::Relaxed); let last_age = self.last_age.swap(age_now, Ordering::Relaxed) as u64;
let mut age_now = age_now as u64;
if last_age > age_now { if last_age > age_now {
// age may have wrapped // age wrapped
age_now += u8::MAX; age_now += u8::MAX as u64 + 1;
} }
let age_delta = age_now.saturating_sub(last_age) as u64; let age_delta = age_now.saturating_sub(last_age) as u64;
if age_delta > 0 { if age_delta > 0 {