@@ -175,31 +175,32 @@ void HyperionDaemon::freeObjects()
175175
176176 // destroy network first as a client might want to access hyperion
177177 delete _jsonServer;
178- _flatBufferServer->thread ()->quit ();
179- _flatBufferServer->thread ()->wait (1000 );
180- delete _flatBufferServer->thread ();
181- delete _flatBufferServer;
182178
183- _protoServer->thread ()->quit ();
184- _protoServer->thread ()->wait (1000 );
185- delete _protoServer->thread ();
186- delete _protoServer;
179+ auto flatBufferServerThread = _flatBufferServer->thread ();
180+ flatBufferServerThread->quit ();
181+ flatBufferServerThread->wait ();
182+ delete flatBufferServerThread;
183+
184+ auto protoServerThread = _protoServer->thread ();
185+ protoServerThread->quit ();
186+ protoServerThread->wait ();
187+ delete protoServerThread;
187188
188189 // ssdp before webserver
189- _ssdp->thread ()-> quit ();
190- _ssdp-> thread ()-> wait ( 1000 );
191- delete _ssdp-> thread ();
192- delete _ssdp ;
190+ auto ssdpThread = _ssdp->thread ();
191+ ssdpThread-> quit ( );
192+ ssdpThread-> wait ();
193+ delete ssdpThread ;
193194
194- _webserver->thread ()-> quit ();
195- _webserver-> thread ()-> wait ( 1000 );
196- delete _webserver-> thread ();
197- delete _webserver ;
195+ auto webserverThread = _webserver->thread ();
196+ webserverThread-> quit ( );
197+ webserverThread-> wait ();
198+ delete webserverThread ;
198199
199- _sslWebserver->thread ()-> quit ();
200- _sslWebserver-> thread ()-> wait ( 1000 );
201- delete _sslWebserver-> thread ();
202- delete _sslWebserver ;
200+ auto sslWebserverThread = _sslWebserver->thread ();
201+ sslWebserverThread-> quit ( );
202+ sslWebserverThread-> wait ();
203+ delete sslWebserverThread ;
203204
204205#ifdef ENABLE_CEC
205206 _cecHandler->thread ()->quit ();
@@ -247,6 +248,7 @@ void HyperionDaemon::startNetworkServices()
247248 fbThread->setObjectName (" FlatBufferServerThread" );
248249 _flatBufferServer->moveToThread (fbThread);
249250 connect (fbThread, &QThread::started, _flatBufferServer, &FlatBufferServer::initServer);
251+ connect (fbThread, &QThread::finished, _flatBufferServer, &FlatBufferServer::deleteLater);
250252 connect (this , &HyperionDaemon::settingsChanged, _flatBufferServer, &FlatBufferServer::handleSettingsUpdate);
251253 fbThread->start ();
252254
@@ -256,6 +258,7 @@ void HyperionDaemon::startNetworkServices()
256258 pThread->setObjectName (" ProtoServerThread" );
257259 _protoServer->moveToThread (pThread);
258260 connect (pThread, &QThread::started, _protoServer, &ProtoServer::initServer);
261+ connect (pThread, &QThread::finished, _protoServer, &ProtoServer::deleteLater);
259262 connect (this , &HyperionDaemon::settingsChanged, _protoServer, &ProtoServer::handleSettingsUpdate);
260263 pThread->start ();
261264
@@ -265,6 +268,7 @@ void HyperionDaemon::startNetworkServices()
265268 wsThread->setObjectName (" WebServerThread" );
266269 _webserver->moveToThread (wsThread);
267270 connect (wsThread, &QThread::started, _webserver, &WebServer::initServer);
271+ connect (wsThread, &QThread::finished, _webserver, &WebServer::deleteLater);
268272 connect (this , &HyperionDaemon::settingsChanged, _webserver, &WebServer::handleSettingsUpdate);
269273 wsThread->start ();
270274
@@ -274,6 +278,7 @@ void HyperionDaemon::startNetworkServices()
274278 sslWsThread->setObjectName (" SSLWebServerThread" );
275279 _sslWebserver->moveToThread (sslWsThread);
276280 connect (sslWsThread, &QThread::started, _sslWebserver, &WebServer::initServer);
281+ connect (sslWsThread, &QThread::finished, _sslWebserver, &WebServer::deleteLater);
277282 connect (this , &HyperionDaemon::settingsChanged, _sslWebserver, &WebServer::handleSettingsUpdate);
278283 sslWsThread->start ();
279284
@@ -283,6 +288,7 @@ void HyperionDaemon::startNetworkServices()
283288 ssdpThread->setObjectName (" SSDPThread" );
284289 _ssdp->moveToThread (ssdpThread);
285290 connect (ssdpThread, &QThread::started, _ssdp, &SSDPHandler::initServer);
291+ connect (ssdpThread, &QThread::finished, _ssdp, &SSDPHandler::deleteLater);
286292 connect (_webserver, &WebServer::stateChange, _ssdp, &SSDPHandler::handleWebServerStateChange);
287293 connect (this , &HyperionDaemon::settingsChanged, _ssdp, &SSDPHandler::handleSettingsUpdate);
288294 ssdpThread->start ();
0 commit comments