diff --git a/src/server/Server.cpp b/src/server/Server.cpp index 6bf669c..45e0357 100644 --- a/src/server/Server.cpp +++ b/src/server/Server.cpp @@ -136,18 +136,21 @@ void Server::Accept() { } void Server::UpdateSockets() { - std::int16_t closedConnexionID = -1; + static std::vector closeConnexions; for (auto& connection : m_Connections) { ServerConnexion& con = connection.second; if (con.GetSocketStatus() != network::Socket::Status::Connected) { - closedConnexionID = connection.first; + closeConnexions.push_back(connection.first); } else { con.UpdateSocket(); } } - if (closedConnexionID != -1) { - RemoveConnexion(closedConnexionID); + + for (auto id : closeConnexions) { + RemoveConnexion(id); } + + closeConnexions.clear(); } void Server::BroadcastPacket(const protocol::Packet* packet) {