diff --git a/utils/cloud_dispatcher/dispatcherserver.cpp b/utils/cloud_dispatcher/dispatcherserver.cpp index 981c4ca0..68ad4ca0 100644 --- a/utils/cloud_dispatcher/dispatcherserver.cpp +++ b/utils/cloud_dispatcher/dispatcherserver.cpp @@ -59,6 +59,7 @@ void DispatcherServer::cleanClients() { for (auto c: ss) { if (c->lastPing() > 15.0) { piCout << "remove Server by ping timeout" << c->getConnection()->clientId(); + c->close(); PIVector cscv = c->getClients(); for (auto csc: cscv) { if (!csc->isPIObject()) piCout << "ACHTUNG! Non-piobject DispatcherClient!"; @@ -68,7 +69,6 @@ void DispatcherServer::cleanClients() { csc->close(); if (!rmrf_clients.contains(csc)) rmrf_clients << csc; } - c->close(); c_servers.remove(c->serverUUID()); index_c_servers.remove(c->getConnection()); rmrf_clients << const_cast(c->getConnection());