disconnect queue

This commit is contained in:
2023-08-14 14:58:26 +02:00
parent 8630421734
commit c46226c1ae

View File

@@ -136,18 +136,21 @@ void Server::Accept() {
} }
void Server::UpdateSockets() { void Server::UpdateSockets() {
std::int16_t closedConnexionID = -1; static std::vector<std::int16_t> closeConnexions;
for (auto& connection : m_Connections) { for (auto& connection : m_Connections) {
ServerConnexion& con = connection.second; ServerConnexion& con = connection.second;
if (con.GetSocketStatus() != network::Socket::Status::Connected) { if (con.GetSocketStatus() != network::Socket::Status::Connected) {
closedConnexionID = connection.first; closeConnexions.push_back(connection.first);
} else { } else {
con.UpdateSocket(); con.UpdateSocket();
} }
} }
if (closedConnexionID != -1) {
RemoveConnexion(closedConnexionID); for (auto id : closeConnexions) {
RemoveConnexion(id);
} }
closeConnexions.clear();
} }
void Server::BroadcastPacket(const protocol::Packet* packet) { void Server::BroadcastPacket(const protocol::Packet* packet) {