diff options
author | Petr Machata <pmachata@redhat.com> | 2012-04-11 18:01:44 +0200 |
---|---|---|
committer | Petr Machata <pmachata@redhat.com> | 2012-04-11 18:01:44 +0200 |
commit | ffe4cd25089680daf1bd1ec0114d177ec3e0cf95 (patch) | |
tree | 68cbebfb7e1de8633af2a305985ccb784d20c770 /libltrace.c | |
parent | cec06ec8282c538a40bde968ae36fe8356daffaa (diff) | |
download | ltrace-ffe4cd25089680daf1bd1ec0114d177ec3e0cf95.tar.gz |
Handle detach from sleeping or unresponsive processes
Diffstat (limited to 'libltrace.c')
-rw-r--r-- | libltrace.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libltrace.c b/libltrace.c index 19bfafd..777ad1b 100644 --- a/libltrace.c +++ b/libltrace.c @@ -48,9 +48,14 @@ signal_alarm(int sig) { } static void -signal_exit(int sig) { - exiting = 1; +signal_exit(int sig) +{ debug(1, "Received interrupt signal; exiting..."); + if (exiting != 0) + return; + + exiting = 1 + !!os_ltrace_exiting_sighandler(); + signal(SIGINT, SIG_IGN); signal(SIGTERM, SIG_IGN); signal(SIGALRM, signal_alarm); |