Fixed SIGTERM handler.

Summary: Merge branch 'dev' into fix_signals

Reviewers: buda

Reviewed By: buda

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D432
This commit is contained in:
Matej Ferencevic 2017-06-07 15:56:26 +02:00
parent a45e5a9a38
commit e9ca6d8243

View File

@ -1,4 +1,3 @@
#include <signal.h>
#include <experimental/filesystem>
#include <iostream>
@ -31,8 +30,6 @@ using result_stream_t =
using bolt_server_t =
communication::Server<session_t, result_stream_t, socket_t>;
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);