summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Griebl <robert.griebl@qt.io>2020-01-24 17:25:39 +0100
committerBernd Weimer <bernd.weimer@pelagicore.com>2020-01-29 13:53:24 +0100
commitac4fe8114d685c575dd037fcb4c29de8346954d4 (patch)
tree6c78653c4b7913d612dc51e6263be4f91c471189
parentc67cfef563cab000835386d157dcb221a6c18878 (diff)
Handle SIGTERM gracefully
Cherry-picked from 5.13: 3791a22 Change-Id: I5c08b3e266a57fe113d59ad0781a33250ab6f327 Reviewed-by: Robert Griebl <robert.griebl@qt.io>
-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 37fcf4a7..840c0344 100644
--- a/src/main-lib/main.cpp
+++ b/src/main-lib/main.cpp
@@ -160,10 +160,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");