From e4fa93b679394ba4b952c7548286846fa47aca50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 26 Sep 2017 22:58:48 +0200 Subject: [PATCH] Prevent guh from shutdown twice --- server/guhapplication.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server/guhapplication.cpp b/server/guhapplication.cpp index 08c8e74f..f0e25241 100644 --- a/server/guhapplication.cpp +++ b/server/guhapplication.cpp @@ -49,6 +49,7 @@ namespace guhserver { static bool s_aboutToShutdown = false; +static bool s_doubleShutdownDetected = false; static void printBacktrace() { @@ -149,15 +150,19 @@ static void catchUnixSignals(const std::vector& quitSignals, const std::vec } if (s_aboutToShutdown) { - qCWarning(dcApplication()) << "Already shutting down."; + s_doubleShutdownDetected = true; + qCWarning(dcApplication()) << "Already shutting down. Be nice and give me some time to clean up, please."; return; } qCDebug(dcApplication) << "====================================="; qCDebug(dcApplication) << "Shutting down guh daemon"; qCDebug(dcApplication) << "====================================="; - + s_aboutToShutdown = true; GuhCore::instance()->destroy(); + if (s_doubleShutdownDetected) + qCDebug(dcApplication) << "Ok, ok, I'm done! :)"; + GuhApplication::quit(); };