Drain all pending work in hashtable's setOldestVersion

This commit is contained in:
2024-03-05 17:18:58 -08:00
parent d81d02f11d
commit c8495b1695
2 changed files with 12 additions and 9 deletions

View File

@@ -56,14 +56,16 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl {
return;
}
auto iter = map.find(removalKey);
if (iter == map.end()) {
iter = map.begin();
}
for (; keyUpdates > 0 && iter != map.end(); --keyUpdates) {
if (iter->second <= oldestVersion) {
iter = map.erase(iter);
} else {
++iter;
while (keyUpdates > 0) {
if (iter == map.end()) {
iter = map.begin();
}
for (; iter != map.end(); --keyUpdates) {
if (iter->second <= oldestVersion) {
iter = map.erase(iter);
} else {
++iter;
}
}
}
if (iter == map.end()) {