From: Willy Tarreau Date: Fri, 4 Jan 2013 15:20:20 +0000 (+0100) Subject: MINOR: signal: don't block SIGPROF by default X-Git-Tag: v1.5-dev18~131 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6747e27667402af0a7fa56eb90e2ac0a9f660333;p=thirdparty%2Fhaproxy.git MINOR: signal: don't block SIGPROF by default 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. --- diff --git a/src/signal.c b/src/signal.c index e1f5a8373f..fb6980b55c 100644 --- a/src/signal.c +++ b/src/signal.c @@ -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);