diff options
Diffstat (limited to 'hurd')
-rw-r--r-- | hurd/hurd-raise.c | 8 | ||||
-rw-r--r-- | hurd/hurd/signal.h | 4 | ||||
-rw-r--r-- | hurd/hurdsig.c | 2 |
3 files changed, 9 insertions, 5 deletions
diff --git a/hurd/hurd-raise.c b/hurd/hurd-raise.c index 23e5dd6974..94abedfc12 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 d94fb3cbd4..73bf976b7d 100644 --- a/hurd/hurd/signal.h +++ b/hurd/hurd/signal.h @@ -280,8 +280,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). */ diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c index 08f754c4e8..5b63a06e15 100644 --- a/hurd/hurdsig.c +++ b/hurd/hurdsig.c @@ -352,7 +352,7 @@ interrupted_reply_port_location (thread_t thread, mach_port_t *portloc = &THREAD_TCB(thread, thread_state)->reply_port; if (sigthread && _hurdsig_catch_memory_fault (portloc)) - /* Faulted trying to read the stack. */ + /* Faulted trying to read the TCB. */ return NULL; /* Fault now if this pointer is bogus. */ |