diff --git a/src/lib-network/src/Server.cpp b/src/lib-network/src/Server.cpp index ac292c5c..19edd914 100644 --- a/src/lib-network/src/Server.cpp +++ b/src/lib-network/src/Server.cpp @@ -68,6 +68,8 @@ void Server::update(std::function log) sf::Packet packet; for (auto&& [key, client] : registeredClients) { + // FIXME: what if registeredClient is removed in the middle of the loop? + // --> deferred removal (or indexed removal) if (client.socket->receive(packet) != sf::Socket::Status::Done) continue; diff --git a/src/server-test/Main.cpp b/src/server-test/Main.cpp index 66e3c658..c72947d0 100644 --- a/src/server-test/Main.cpp +++ b/src/server-test/Main.cpp @@ -9,7 +9,8 @@ void serverLoop(Server server) { while (serverEnabled) { - server.update(); + server.update([](const std::string& log) + { std::cout << log << std::endl; }); } }