From: Wayne Davison Date: Fri, 3 Feb 2006 18:48:26 +0000 (+0000) Subject: Allow sigaction() to be used even if sigprocmask() isn't around X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/8261af7422242809bc7f888a715e9775b8c0ebd3 Allow sigaction() to be used even if sigprocmask() isn't around (or was manually disabled). --- diff --git a/main.c b/main.c index 58ea8b00..f60d4aec 100644 --- a/main.c +++ b/main.c @@ -68,8 +68,12 @@ struct file_list *the_file_list; * but set it higher, just in case. */ #define MAXCHILDPROCS 7 -#if defined HAVE_SIGACTION && defined HAVE_SIGPROCMASK -#define SIGACTMASK(n,h) SIGACTION(n,h), sigaddset(&sigmask,(n)) +#ifdef HAVE_SIGACTION +# ifdef HAVE_SIGPROCMASK +# define SIGACTMASK(n,h) SIGACTION(n,h), sigaddset(&sigmask,(n)) +# else +# define SIGACTMASK(n,h) SIGACTION(n,h) +# endif static struct sigaction sigact; #endif @@ -1104,7 +1108,7 @@ static RETSIGTYPE sigchld_handler(UNUSED(int val)) } } #endif -#if !defined HAVE_SIGACTION && !defined HAVE_SIGPROCMASK +#ifndef HAVE_SIGACTION signal(SIGCHLD, sigchld_handler); #endif } @@ -1166,10 +1170,12 @@ int main(int argc,char *argv[]) int ret; int orig_argc = argc; char **orig_argv = argv; -#if defined HAVE_SIGACTION && defined HAVE_SIGPROCMASK +#ifdef HAVE_SIGACTION +# ifdef HAVE_SIGPROCMASK sigset_t sigmask; sigemptyset(&sigmask); +# endif sigact.sa_flags = SA_NOCLDSTOP; #endif SIGACTMASK(SIGUSR1, sigusr1_handler);