]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: signal: don't block SIGPROF by default
authorWilly Tarreau <w@1wt.eu>
Fri, 4 Jan 2013 15:20:20 +0000 (16:20 +0100)
committerWilly Tarreau <w@1wt.eu>
Mon, 7 Jan 2013 10:36:11 +0000 (11:36 +0100)
SIGPROF is blocked then restored to default settings, which sometimes
makes profiling harder. Let's not block it by default nor restore it,
it doesn't serve any purpose anyway.

src/signal.c

index e1f5a8373fbcdb06a942d9be28e44061529d4888..fb6980b55cf91c10868659936c64d7a1127ba783 100644 (file)
@@ -106,6 +106,7 @@ int signal_init()
        memset(signal_queue, 0, sizeof(signal_queue));
        memset(signal_state, 0, sizeof(signal_state));
        sigfillset(&blocked_sig);
+       sigdelset(&blocked_sig, SIGPROF);
        for (sig = 0; sig < MAX_SIGNAL; sig++)
                LIST_INIT(&signal_state[sig].handlers);
 
@@ -120,7 +121,8 @@ void deinit_signals()
        struct sig_handler *sh, *shb;
 
        for (sig = 0; sig < MAX_SIGNAL; sig++) {
-               signal(sig, SIG_DFL);
+               if (sig != SIGPROF)
+                       signal(sig, SIG_DFL);
                list_for_each_entry_safe(sh, shb, &signal_state[sig].handlers, list) {
                        LIST_DEL(&sh->list);
                        pool_free2(pool2_sig_handlers, sh);