diff options
author | Robert Griebl <robert.griebl@qt.io> | 2020-01-24 17:25:39 +0100 |
---|---|---|
committer | Bernd Weimer <bernd.weimer@pelagicore.com> | 2020-01-29 13:53:24 +0100 |
commit | ac4fe8114d685c575dd037fcb4c29de8346954d4 (patch) | |
tree | 6c78653c4b7913d612dc51e6263be4f91c471189 | |
parent | c67cfef563cab000835386d157dcb221a6c18878 (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.cpp | 10 |
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"); |