Drain all pending work in hashtable's setOldestVersion
This commit is contained in:
@@ -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()) {
|
||||
|
Reference in New Issue
Block a user