summaryrefslogtreecommitdiff
path: root/lib/raise.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/raise.c')
-rw-r--r--lib/raise.c26
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
+}