Skip to content

Commit 0c45417

Browse files
committed
Iteration fix
1 parent 4bd9181 commit 0c45417

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

QuantumGateLib/Core/KeyGeneration/KeyGenerationManager.cpp

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -268,18 +268,24 @@ namespace QuantumGate::Implementation::Core::KeyGeneration
268268
{
269269
m_KeyQueues.WithUniqueLock([&](KeyQueueMap& queues)
270270
{
271-
for (auto it = queues.begin(); it != queues.end() && !shutdown_event.IsSet(); ++it)
271+
auto it = queues.begin();
272+
while (it != queues.end() && !shutdown_event.IsSet())
272273
{
273-
auto active = false;
274-
Size num_pending_events{ 0 };
274+
auto erase = false;
275275

276276
it->second->WithUniqueLock([&](KeyQueue& key_queue)
277277
{
278-
active = key_queue.Active;
279-
num_pending_events = key_queue.NumPendingEvents;
278+
if (!key_queue.Active && key_queue.NumPendingEvents == 0)
279+
{
280+
erase = true;
281+
}
280282
});
281283

282-
if (!active && num_pending_events == 0) it = queues.erase(it);
284+
if (erase)
285+
{
286+
it = queues.erase(it);
287+
}
288+
else ++it;
283289
}
284290
});
285291

0 commit comments

Comments
 (0)