From 50549f3d1a18c44ea54e970965c007e1b825fd88 Mon Sep 17 00:00:00 2001 From: Anonymous-275 Date: Wed, 31 Mar 2021 00:36:15 +0300 Subject: [PATCH] Copy set of shared ptrs --- src/TServer.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/TServer.cpp b/src/TServer.cpp index bbc3a6d..b03e266 100644 --- a/src/TServer.cpp +++ b/src/TServer.cpp @@ -48,7 +48,12 @@ std::weak_ptr TServer::InsertNewClient() { } void TServer::ForEachClient(const std::function)>& Fn) { - for (auto& Client : mClients) { + decltype(mClients) Clients; + { + ReadLock lock(mClientsMutex); + Clients = mClients; + } + for (auto& Client : Clients) { if (!Fn(Client)) { break; }