1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

A preparatory patch for MCOL-4170 Refactor services/systemd units to finish their bootstrap ...

Moving signal initialization code into separate functions.
This commit is contained in:
Alexander Barkov
2020-11-06 11:53:02 +04:00
parent d68716e423
commit ffd96d0315
6 changed files with 139 additions and 96 deletions

View File

@ -100,6 +100,28 @@ void reload(int num)
}
*/
static void setupSignalHandlers()
{
/* XXXPAT: we might want to install signal handlers for every signal */
signal(SIGINT, stop);
signal(SIGTERM, stop);
#ifndef _MSC_VER
signal(SIGHUP, SIG_IGN);
signal(SIGUSR1, restart);
signal(SIGPIPE, SIG_IGN);
#endif
struct sigaction ign;
memset(&ign, 0, sizeof(ign));
ign.sa_handler = fatalHandler;
sigaction(SIGSEGV, &ign, 0);
sigaction(SIGABRT, &ign, 0);
sigaction(SIGFPE, &ign, 0);
}
int main(int argc, char** argv)
{
// Set locale language
@ -130,22 +152,7 @@ int main(int argc, char** argv)
(void)config::Config::makeConfig();
/* XXXPAT: we might want to install signal handlers for every signal */
signal(SIGINT, stop);
signal(SIGTERM, stop);
#ifndef _MSC_VER
signal(SIGHUP, SIG_IGN);
signal(SIGUSR1, restart);
signal(SIGPIPE, SIG_IGN);
#endif
struct sigaction ign;
memset(&ign, 0, sizeof(ign));
ign.sa_handler = fatalHandler;
sigaction(SIGSEGV, &ign, 0);
sigaction(SIGABRT, &ign, 0);
sigaction(SIGFPE, &ign, 0);
setupSignalHandlers();
idbdatafile::IDBPolicy::configIDBPolicy();

View File

@ -76,6 +76,27 @@ void reset(int sig)
comm->reset();
}
static void setupSignalHandlers()
{
#ifdef SIGHUP
signal(SIGHUP, reset);
#endif
signal(SIGINT, stop);
signal(SIGTERM, stop);
#ifdef SIGPIPE
signal(SIGPIPE, SIG_IGN);
#endif
struct sigaction ign;
memset(&ign, 0, sizeof(ign));
ign.sa_handler = fatalHandler;
sigaction(SIGSEGV, &ign, 0);
sigaction(SIGABRT, &ign, 0);
sigaction(SIGFPE, &ign, 0);
}
int main(int argc, char** argv)
{
// Set locale language
@ -118,21 +139,7 @@ int main(int argc, char** argv)
exit(1);
}
#ifdef SIGHUP
signal(SIGHUP, reset);
#endif
signal(SIGINT, stop);
signal(SIGTERM, stop);
#ifdef SIGPIPE
signal(SIGPIPE, SIG_IGN);
#endif
struct sigaction ign;
memset(&ign, 0, sizeof(ign));
ign.sa_handler = fatalHandler;
sigaction(SIGSEGV, &ign, 0);
sigaction(SIGABRT, &ign, 0);
sigaction(SIGFPE, &ign, 0);
setupSignalHandlers();
if (!(argc >= 3 && (arg = argv[2]) == "fg"))
err = fork();