diff options
Diffstat (limited to 'lib/raise.c')
-rw-r--r-- | lib/raise.c | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/lib/raise.c b/lib/raise.c index 980c9fd488..aee33e885e 100644 --- a/lib/raise.c +++ b/lib/raise.c @@ -50,24 +50,30 @@ raise_nothrow (int sig) return result; } -# define raise raise_nothrow +# else +# define raise_nothrow raise # endif -int -rpl_raise (int sig) -{ - return raise_nothrow (sig); -} - #else /* An old Unix platform. */ # include <unistd.h> +# define rpl_raise raise + +#endif + int -raise (int sig) +rpl_raise (int sig) { - return kill (getpid (), sig); -} +#if GNULIB_defined_signal_blocking && GNULIB_defined_SIGPIPE + if (sig == SIGPIPE) + return _gl_raise_SIGPIPE (); +#endif +#if HAVE_RAISE + return raise_nothrow (sig); +#else + return kill (getpid (), sig); #endif +} |