Safely close database connections and delete backends

Also fix NewClosure leak caused by disconnected object signals
This commit is contained in:
Jonas Kvinge
2019-07-24 19:16:51 +02:00
parent bd78e8c275
commit b5eb13449b
47 changed files with 490 additions and 53 deletions

View File

@@ -72,3 +72,22 @@ void InternetServices::ReloadSettings() {
service->ReloadSettings();
}
}
void InternetServices::Exit() {
for (InternetService *service : services_.values()) {
wait_for_exit_ << service;
connect(service, SIGNAL(ExitFinished()), this, SLOT(ExitReceived()));
service->Exit();
}
}
void InternetServices::ExitReceived() {
InternetService *service = qobject_cast<InternetService*>(sender());
wait_for_exit_.removeAll(service);
if (wait_for_exit_.isEmpty()) emit ExitFinished();
}