picloud hang fix try :`-(

This commit is contained in:
2024-09-06 08:05:26 +03:00
parent a0454b809d
commit 16a818c95e
2 changed files with 4 additions and 1 deletions

View File

@@ -31,6 +31,8 @@ public:
EVENT2(dataReadedServer, uint, id, PIByteArray &, ba)
EVENT0(pingReceived)
PIObject::Connection connect_link;
private:
EVENT_HANDLER1(void, readed, PIByteArray &, data);
EVENT_HANDLER1(void, disconnected, bool, withError);

View File

@@ -201,6 +201,7 @@ void DispatcherServer::disconnectClient(DispatcherClient * client) {
return;
}
piCoutObj << "remove ..." << client->clientId();
client->connect_link.disconnect();
clients.removeAll(client);
rm_clients.remove(client);
CloudServer * cs = index_c_servers.value(client, nullptr);
@@ -238,7 +239,7 @@ void DispatcherServer::newConnection(PIEthernet * cl) {
return;
}
DispatcherClient * client = new DispatcherClient(cl, client_gid++);
CONNECTU(client, disconnectEvent, this, disconnectClient);
client->connect_link = CONNECTU(client, disconnectEvent, this, disconnectClient);
CONNECTL(client, registerServer, [this](const PIByteArray & sname, DispatcherClient * c) {
PIMutexLocker locker(map_mutex);
CloudServer * cs = c_servers.value(sname, nullptr);