From ee0976f7fc61f43a7140e100b36be1e05a965c67 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sat, 10 Oct 2015 16:21:41 +0200 Subject: 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. --- ChangeLog | 6 ++++++ hurd/hurd-raise.c | 8 ++++++-- hurd/hurd/signal.h | 4 ++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2e12f19..b1dd4f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015-10-10 Samuel Thibault + + * 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 * sysdeps/mips/mips32/libm-test-ulps: Regenerated. diff --git a/hurd/hurd-raise.c b/hurd/hurd-raise.c index df1e988..3ae6b57 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 81d049c..abceee2 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). */ -- cgit v1.1