X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fsignals.c;h=5b55fc429c21871a1a24d7d16e72b5f53a694f06;hp=77d61ce0e08d55b1504681f809fcfb4b8e3519cc;hb=ac0b9fcce4167e2959ebc5b8d6efb8511acec66d;hpb=fc71710f8695ea07d852284286b058ecb3955317 diff --git a/sbr/signals.c b/sbr/signals.c index 77d61ce..5b55fc4 100644 --- a/sbr/signals.c +++ b/sbr/signals.c @@ -10,46 +10,19 @@ #include -int -SIGPROCMASK(int how, const sigset_t *set, sigset_t *oset) -{ -#ifdef POSIX_SIGNALS - return sigprocmask(how, set, oset); -#else -# ifdef BSD_SIGNALS - switch(how) { - case SIG_BLOCK: - *oset = sigblock(*set); - break; - case SIG_UNBLOCK: - sigfillset(*oset); - *oset = sigsetmask(*oset); - sigsetmask(*oset & ~(*set)); - break; - case SIG_SETMASK: - *oset = sigsetmask(*set); - break; - default: - adios(NULL, "unknown flag in SIGPROCMASK"); - break; - } - return 0; -# endif -#endif -} - - /* ** A version of the function `signal' that uses reliable ** signals, if the machine supports them. Also, (assuming ** OS support), it restarts interrupted system calls for all ** signals except SIGALRM. +** +** Since we are now assuming POSIX signal support everywhere, we always +** use reliable signals. */ SIGNAL_HANDLER SIGNAL(int sig, SIGNAL_HANDLER func) { -#ifdef POSIX_SIGNALS struct sigaction act, oact; act.sa_handler = func; @@ -68,9 +41,6 @@ SIGNAL(int sig, SIGNAL_HANDLER func) if (sigaction(sig, &act, &oact) < 0) return (SIG_ERR); return (oact.sa_handler); -#else - return signal(sig, func); -#endif } @@ -83,7 +53,6 @@ SIGNAL(int sig, SIGNAL_HANDLER func) SIGNAL_HANDLER SIGNAL2(int sig, SIGNAL_HANDLER func) { -#ifdef POSIX_SIGNALS struct sigaction act, oact; if (sigaction(sig, NULL, &oact) < 0) @@ -106,11 +75,4 @@ SIGNAL2(int sig, SIGNAL_HANDLER func) return (SIG_ERR); } return (oact.sa_handler); -#else - SIGNAL_HANDLER ofunc; - - if ((ofunc = signal(sig, SIG_IGN)) != SIG_IGN) - signal(sig, func); - return ofunc; -#endif }