From e9ca6d82434294ebf167407aafaffd9d51f2eea9 Mon Sep 17 00:00:00 2001 From: Matej Ferencevic Date: Wed, 7 Jun 2017 15:56:26 +0200 Subject: [PATCH] Fixed SIGTERM handler. Summary: Merge branch 'dev' into fix_signals Reviewers: buda Reviewed By: buda Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D432 --- src/memgraph_bolt.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/memgraph_bolt.cpp b/src/memgraph_bolt.cpp index 316a47e4a..ee1a8a3ad 100644 --- a/src/memgraph_bolt.cpp +++ b/src/memgraph_bolt.cpp @@ -1,4 +1,3 @@ -#include #include #include @@ -31,8 +30,6 @@ using result_stream_t = using bolt_server_t = communication::Server; -static bolt_server_t *serverptr; - Logger logger; DEFINE_string(interface, "0.0.0.0", "Default interface on which to listen."); @@ -109,10 +106,6 @@ int main(int argc, char **argv) { log_stacktrace("SegmentationFault signal raised"); std::exit(EXIT_FAILURE); }); - SignalHandler::register_handler(Signal::Terminate, []() { - log_stacktrace("Terminate signal raised"); - std::exit(EXIT_FAILURE); - }); SignalHandler::register_handler(Signal::Abort, []() { log_stacktrace("Abort signal raised"); std::exit(EXIT_FAILURE); @@ -150,7 +143,12 @@ int main(int argc, char **argv) { // Initialize server. bolt_server_t server(std::move(socket), dbms, query_engine); - serverptr = &server; + + // register SIGTERM handler + SignalHandler::register_handler(Signal::Terminate, [&server]() { + server.Shutdown(); + std::exit(EXIT_SUCCESS); + }); // Start worker threads. logger.info("Starting {} workers", FLAGS_num_workers);