AcctIdx: avoid crazy #s on ms_per_age stat (#20184)
This commit is contained in:
parent
12a52b3c8c
commit
d8f98b3dcb
|
@ -80,19 +80,20 @@ impl BucketMapHolderStats {
|
|||
}
|
||||
|
||||
fn ms_per_age<T: IndexValue>(&self, storage: &BucketMapHolder<T>) -> u64 {
|
||||
let elapsed_ms = self.get_elapsed_ms_and_reset();
|
||||
let mut age_now = storage.current_age();
|
||||
let last_age = self.last_age.swap(age_now, Ordering::Relaxed);
|
||||
if last_age > age_now {
|
||||
// age may have wrapped
|
||||
age_now += u8::MAX;
|
||||
}
|
||||
let age_delta = age_now.saturating_sub(last_age) as u64;
|
||||
if age_delta > 0 {
|
||||
elapsed_ms / age_delta
|
||||
} else {
|
||||
0
|
||||
if !storage.get_startup() {
|
||||
let elapsed_ms = self.get_elapsed_ms_and_reset();
|
||||
let mut age_now = storage.current_age();
|
||||
let last_age = self.last_age.swap(age_now, Ordering::Relaxed);
|
||||
if last_age > age_now {
|
||||
// age may have wrapped
|
||||
age_now += u8::MAX;
|
||||
}
|
||||
let age_delta = age_now.saturating_sub(last_age) as u64;
|
||||
if age_delta > 0 {
|
||||
return elapsed_ms / age_delta;
|
||||
}
|
||||
}
|
||||
0 // avoid crazy numbers
|
||||
}
|
||||
|
||||
pub fn remaining_until_next_interval(&self) -> u64 {
|
||||
|
|
Loading…
Reference in New Issue