summaryrefslogtreecommitdiff
path: root/src/message.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/message.cpp')
-rw-r--r--src/message.cpp8
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();
}
}