fix cloud ... :-/

This commit is contained in:
2024-03-25 21:24:29 +03:00
parent 0d585cfebf
commit 2db9440a38
2 changed files with 5 additions and 1 deletions

View File

@@ -49,6 +49,9 @@ void DispatcherServer::cleanClients() {
if (!c->isPIObject()) piCout << "ACHTUNG! Non-piobject client!";
}
piDeleteAllAndClear(rmrf_clients);
for (auto s: rmrf_servers)
s->close();
piDeleteAllAndClear(rmrf_servers);
for (auto c: clients) {
if (!index_c_servers.contains(c) && !index_c_clients.contains(c)) {
if (!rm_clients.contains(c)) rm_clients << c;
@@ -205,7 +208,7 @@ void DispatcherServer::disconnectClient(DispatcherClient * client) {
}
c_servers.remove(cs->serverUUID());
index_c_servers.remove(client);
delete cs;
if (!rmrf_servers.contains(cs)) rmrf_servers << cs;
}
CloudServer * cc = index_c_clients.value(client, nullptr);
if (cc) {

View File

@@ -36,6 +36,7 @@ private:
PIMap<const DispatcherClient *, CloudServer *> index_c_clients;
PIVector<DispatcherClient *> rm_clients;
PIVector<DispatcherClient *> rmrf_clients;
PIVector<CloudServer *> rmrf_servers;
PITimer timeout_timer;
PIMutex map_mutex;
uint client_gid;