diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/message.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/message.cpp b/src/message.cpp index 349accb..cda2fa7 100644 --- a/src/message.cpp +++ b/src/message.cpp @@ -520,13 +520,15 @@ void DirectMessageService::doSyncWithPeers() continue; } - auto & [ thread, peer ] = peerSyncQueue.front(); + decltype(peerSyncQueue) queue; + std::swap(queue, peerSyncQueue); + lock.unlock(); - doSyncWithPeer(thread, peer); + for (auto & [ thread, peer ] : queue) + doSyncWithPeer(thread, peer); lock.lock(); - peerSyncQueue.pop_front(); } } |