TT#142600 Improve signal handling

On signals that are expected to terminate the program gracefully, do not
call abort, otherwise we get core dumps for conditions, that while
unexpected are not worth a core dump, such timing out when called with
the timeout program.

Print the signal name instead of number

Change-Id: I740978882288801d71d4d3c4a1bbbde8b70e6a4f
(cherry picked from commit a137c6a853)
mr10.0
Guillem Jover 5 years ago
parent f323ef891c
commit 6e0bdd6a91

@ -111,8 +111,13 @@ static void cleanup(void) {
}
static void sigcleanup(int sig) {
fprintf(stderr, "signal %s received, exiting\n", strsignal(sig));
cleanup();
}
static void sigabort(int sig) {
signal(SIGABRT, SIG_DFL);
fprintf(stderr, "signal %i received, aborting\n", sig);
fprintf(stderr, "signal %s received, aborting\n", strsignal(sig));
cleanup();
abort();
}
@ -130,8 +135,8 @@ int main(int argc, char *argv[])
init_rand();
atexit(cleanup);
signal(SIGSEGV, sigcleanup);
signal(SIGABRT, sigcleanup);
signal(SIGSEGV, sigabort);
signal(SIGABRT, sigabort);
signal(SIGTERM, sigcleanup);
signal(SIGINT, sigcleanup);
signal(SIGHUP, sigcleanup);

Loading…
Cancel
Save