about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2015-10-10 16:21:41 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2015-10-10 16:21:41 +0200
commitee0976f7fc61f43a7140e100b36be1e05a965c67 (patch)
treee5e9b7bdf5daf5d345ce3ac8767851e949aa0903
parent39b3985bed6848720e82923e5021a6b303515558 (diff)
downloadglibc-ee0976f7fc61f43a7140e100b36be1e05a965c67.tar.gz
glibc-ee0976f7fc61f43a7140e100b36be1e05a965c67.tar.xz
glibc-ee0976f7fc61f43a7140e100b36be1e05a965c67.zip
Make _hurd_raise_signal return errors
	* hurd/hurd-raise.c (_hurd_raise_signal): Set errno to error returned
	by __msg_sig_post.
	* hurd/hurd/signal.h (_hurd_raise_signal): Add int return type.
-rw-r--r--ChangeLog6
-rw-r--r--hurd/hurd-raise.c8
-rw-r--r--hurd/hurd/signal.h4
3 files changed, 14 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 2e12f19c47..b1dd4f04fe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-10-10  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+	* hurd/hurd-raise.c (_hurd_raise_signal): Set errno to error returned
+	by __msg_sig_post.
+	* hurd/hurd/signal.h (_hurd_raise_signal): Add int return type.
+
 2015-10-09  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/mips/mips32/libm-test-ulps: Regenerated.
diff --git a/hurd/hurd-raise.c b/hurd/hurd-raise.c
index df1e9880cf..3ae6b57147 100644
--- a/hurd/hurd-raise.c
+++ b/hurd/hurd-raise.c
@@ -24,10 +24,12 @@
    If SS is not NULL it is the sigstate for the calling thread;
    SS->lock is held on entry and released before return.  */
 
-void
+int
 _hurd_raise_signal (struct hurd_sigstate *ss,
 		    int signo, const struct hurd_signal_detail *detail)
 {
+  error_t err;
+
   if (ss == NULL)
     {
       ss = _hurd_self_sigstate ();
@@ -46,5 +48,7 @@ _hurd_raise_signal (struct hurd_sigstate *ss,
      already marked the signal as pending for the particular thread we
      want.  Generating the signal with an RPC might deliver it to some
      other thread.  */
-  __msg_sig_post (_hurd_msgport, 0, 0, __mach_task_self ());
+  err = __msg_sig_post (_hurd_msgport, 0, 0, __mach_task_self ());
+
+  return __hurd_fail(err);
 }
diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h
index 81d049c343..abceee2d3c 100644
--- a/hurd/hurd/signal.h
+++ b/hurd/hurd/signal.h
@@ -233,8 +233,8 @@ extern void _hurdsig_fault_init (void);
    sigstate SS points to.  If SS is a null pointer, this instead affects
    the calling thread.  */
 
-extern void _hurd_raise_signal (struct hurd_sigstate *ss, int signo,
-				const struct hurd_signal_detail *detail);
+extern int _hurd_raise_signal (struct hurd_sigstate *ss, int signo,
+			       const struct hurd_signal_detail *detail);
 
 /* Translate a Mach exception into a signal (machine-dependent).  */