X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=driver%2Fsubprocs.c;h=463b3189450310fbbeb2f8e5ae552c17537de79e;hp=527f379d4b5278ff1b3df095a7d2539e6a93bcd8;hb=96bdd7cf6ea60c418a76921acaf0e34d6f5be930;hpb=6cee540bdbb571485cd5e519f89f389faebd0495 diff --git a/driver/subprocs.c b/driver/subprocs.c index 527f379d..463b3189 100644 --- a/driver/subprocs.c +++ b/driver/subprocs.c @@ -294,17 +294,28 @@ static void describe_dead_child (saver_info *, pid_t, int wait_status); static int block_sigchld_handler = 0; -void +#ifdef HAVE_SIGACTION + sigset_t +#else /* !HAVE_SIGACTION */ + int +#endif /* !HAVE_SIGACTION */ block_sigchld (void) { #ifdef HAVE_SIGACTION sigset_t child_set; sigemptyset (&child_set); sigaddset (&child_set, SIGCHLD); + sigaddset (&child_set, SIGPIPE); sigprocmask (SIG_BLOCK, &child_set, 0); #endif /* HAVE_SIGACTION */ block_sigchld_handler++; + +#ifdef HAVE_SIGACTION + return child_set; +#else /* !HAVE_SIGACTION */ + return 0; +#endif /* !HAVE_SIGACTION */ } void @@ -314,6 +325,7 @@ unblock_sigchld (void) sigset_t child_set; sigemptyset(&child_set); sigaddset(&child_set, SIGCHLD); + sigaddset(&child_set, SIGPIPE); sigprocmask(SIG_UNBLOCK, &child_set, 0); #endif /* HAVE_SIGACTION */