fix cloud ... :-/
This commit is contained in:
@@ -49,6 +49,9 @@ void DispatcherServer::cleanClients() {
|
|||||||
if (!c->isPIObject()) piCout << "ACHTUNG! Non-piobject client!";
|
if (!c->isPIObject()) piCout << "ACHTUNG! Non-piobject client!";
|
||||||
}
|
}
|
||||||
piDeleteAllAndClear(rmrf_clients);
|
piDeleteAllAndClear(rmrf_clients);
|
||||||
|
for (auto s: rmrf_servers)
|
||||||
|
s->close();
|
||||||
|
piDeleteAllAndClear(rmrf_servers);
|
||||||
for (auto c: clients) {
|
for (auto c: clients) {
|
||||||
if (!index_c_servers.contains(c) && !index_c_clients.contains(c)) {
|
if (!index_c_servers.contains(c) && !index_c_clients.contains(c)) {
|
||||||
if (!rm_clients.contains(c)) rm_clients << c;
|
if (!rm_clients.contains(c)) rm_clients << c;
|
||||||
@@ -205,7 +208,7 @@ void DispatcherServer::disconnectClient(DispatcherClient * client) {
|
|||||||
}
|
}
|
||||||
c_servers.remove(cs->serverUUID());
|
c_servers.remove(cs->serverUUID());
|
||||||
index_c_servers.remove(client);
|
index_c_servers.remove(client);
|
||||||
delete cs;
|
if (!rmrf_servers.contains(cs)) rmrf_servers << cs;
|
||||||
}
|
}
|
||||||
CloudServer * cc = index_c_clients.value(client, nullptr);
|
CloudServer * cc = index_c_clients.value(client, nullptr);
|
||||||
if (cc) {
|
if (cc) {
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ private:
|
|||||||
PIMap<const DispatcherClient *, CloudServer *> index_c_clients;
|
PIMap<const DispatcherClient *, CloudServer *> index_c_clients;
|
||||||
PIVector<DispatcherClient *> rm_clients;
|
PIVector<DispatcherClient *> rm_clients;
|
||||||
PIVector<DispatcherClient *> rmrf_clients;
|
PIVector<DispatcherClient *> rmrf_clients;
|
||||||
|
PIVector<CloudServer *> rmrf_servers;
|
||||||
PITimer timeout_timer;
|
PITimer timeout_timer;
|
||||||
PIMutex map_mutex;
|
PIMutex map_mutex;
|
||||||
uint client_gid;
|
uint client_gid;
|
||||||
|
|||||||
Reference in New Issue
Block a user