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; }