diff --git a/src/common/utils/AtomicSharedPtrTable.h b/src/common/utils/AtomicSharedPtrTable.h index 43be477..66e4195 100644 --- a/src/common/utils/AtomicSharedPtrTable.h +++ b/src/common/utils/AtomicSharedPtrTable.h @@ -32,10 +32,11 @@ struct AvailSlots { std::lock_guard lock(mutex); if (idx == nextAvail - 1) { - while (free.find(--nextAvail) != free.end()) { - // move back next avail as much as possible - ; - } + nextAvail--; + while (free.find(nextAvail - 1) != free.end()) { + // move back next avail as much as possible + free.erase(--nextAvail); + } } else { free.insert(idx); }