AcctIdx: never retry a bucket flush (#23732)

This commit is contained in:
Jeff Washington (jwash)
2022-03-18 12:20:42 -05:00
committed by GitHub
parent c9b8977226
commit 998e7d18f9
2 changed files with 43 additions and 21 deletions

View File

@@ -268,11 +268,21 @@ impl<T: IndexValue> AccountMapEntryInner<T> {
}
pub fn age(&self) -> Age {
self.meta.age.load(Ordering::Relaxed)
self.meta.age.load(Ordering::Acquire)
}
pub fn set_age(&self, value: Age) {
self.meta.age.store(value, Ordering::Relaxed)
self.meta.age.store(value, Ordering::Release)
}
/// set age to 'next_age' if 'self.age' is 'expected_age'
pub fn try_exchange_age(&self, next_age: Age, expected_age: Age) {
let _ = self.meta.age.compare_exchange(
expected_age,
next_age,
Ordering::AcqRel,
Ordering::Relaxed,
);
}
}