diff options
Diffstat (limited to 'signal')
-rw-r--r-- | signal/signal.h | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/signal/signal.h b/signal/signal.h index ec28b31..b698d14 100644 --- a/signal/signal.h +++ b/signal/signal.h @@ -158,28 +158,20 @@ extern void psiginfo (const siginfo_t *__pinfo, const char *__s); -/* The `sigpause' function has two different interfaces. The original - BSD definition defines the argument as a mask of the signal, while - the more modern interface in X/Open defines it as the signal - number. We go with the BSD version unless the user explicitly - selects the X/Open version. +/* The `sigpause' function in X/Open defines the argument as the + signal number. This requires redirecting to another function + because the default version in glibc uses an old BSD interface. This function is a cancellation point and therefore not marked with __THROW. */ extern int __sigpause (int __sig_or_mask, int __is_sig); -#ifdef __FAVOR_BSD -/* Set the mask of blocked signals to MASK, - wait for a signal to arrive, and then restore the mask. */ -extern int sigpause (int __mask) __THROW __attribute_deprecated__; -#else -# ifdef __USE_XOPEN -# ifdef __GNUC__ +#ifdef __USE_XOPEN +# ifdef __GNUC__ extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); -# else +# else /* Remove a signal from the signal mask and suspend the process. */ -# define sigpause(sig) __sigpause ((sig), 1) -# endif +# define sigpause(sig) __sigpause ((sig), 1) # endif #endif |