From c5ce5f3c01af95093aea122a3be2b40288ab94e4 Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Wed, 3 Nov 2004 14:29:37 +0000 Subject: new setSigHandlersForDecoder() function, and be sure player/decode processes ignore SIGHUP signals git-svn-id: https://svn.musicpd.org/mpd/trunk@2492 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/sig_handlers.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/sig_handlers.c') diff --git a/src/sig_handlers.c b/src/sig_handlers.c index a3ac478cb..4ab5163bf 100644 --- a/src/sig_handlers.c +++ b/src/sig_handlers.c @@ -25,6 +25,7 @@ #include "signal_check.h" #include "log.h" #include "player.h" +#include "decode.h" #include #include @@ -89,6 +90,21 @@ void finishSigHandlers() { signal_unhandle(SIGHUP); } +void setSigHandlersForDecoder() { + struct sigaction sa; + + finishSigHandlers(); + + sa.sa_flags = 0; + sigemptyset(&sa.sa_mask); + sa.sa_handler = SIG_IGN; + while(sigaction(SIGHUP,&sa,NULL)<0 && errno==EINTR); + sa.sa_handler = decodeSigHandler; + while(sigaction(SIGCHLD,&sa,NULL)<0 && errno==EINTR); + while(sigaction(SIGTERM,&sa,NULL)<0 && errno==EINTR); + while(sigaction(SIGINT,&sa,NULL)<0 && errno==EINTR); +} + void ignoreSignals() { struct sigaction sa; -- cgit v1.2.3