summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Griebl <robert.griebl@qt.io>2020-01-24 17:25:39 +0100
committerRobert Griebl <robert.griebl@qt.io>2020-01-24 17:53:40 +0100
commit3791a22b27906cc461bdf294782d98a11f4bca12 (patch)
tree90371273b8f05364a0d577eb6e514e17362b7690
parentdf78fb1c31b2fcd1437c8f98de53c28514f83e54 (diff)
Handle SIGTERM gracefully
Change-Id: I5c08b3e266a57fe113d59ad0781a33250ab6f327 Reviewed-by: Bernd Weimer <bernd.weimer@pelagicore.com>
-rw-r--r--src/main-lib/main.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/main-lib/main.cpp b/src/main-lib/main.cpp
index 9c493a7b..dd325502 100644
--- a/src/main-lib/main.cpp
+++ b/src/main-lib/main.cpp
@@ -161,10 +161,12 @@ Main::Main(int &argc, char **argv)
// this might be needed later on by the native runtime to find a suitable qml runtime launcher
setProperty("_am_build_dir", qSL(AM_BUILD_DIR));
- UnixSignalHandler::instance()->install(UnixSignalHandler::ForwardedToEventLoopHandler, SIGINT,
- [](int /*sig*/) {
- UnixSignalHandler::instance()->resetToDefault(SIGINT);
- fputs("\n*** received SIGINT / Ctrl+C ... exiting ***\n\n", stderr);
+ UnixSignalHandler::instance()->install(UnixSignalHandler::ForwardedToEventLoopHandler,
+ { SIGINT, SIGTERM },
+ [](int sig) {
+ UnixSignalHandler::instance()->resetToDefault(sig);
+ if (sig == SIGINT)
+ fputs("\n*** received SIGINT / Ctrl+C ... exiting ***\n\n", stderr);
static_cast<Main *>(QCoreApplication::instance())->shutDown();
});
StartupTimer::instance()->checkpoint("after application constructor");