summaryrefslogtreecommitdiff
path: root/hurd/hurd-raise.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1999-02-28 09:46:20 +0000
committerRoland McGrath <roland@gnu.org>1999-02-28 09:46:20 +0000
commit813de3b38e97b1ccfbec0748b1851e455b5df37a (patch)
treece5dff2b854499d4299f59c9c406ad0231056da0 /hurd/hurd-raise.c
parente8f51d56d4c4b5839fee6af97b068f9fa02efd09 (diff)
downloadglibc-813de3b38e97b1ccfbec0748b1851e455b5df37a.tar.gz
1999-02-28 Roland McGrath <roland@baalperazim.frob.com>
* hurd/hurd-raise.c (_hurd_raise_signal): Send "poll request" msg_sig_post RPC (with SIGNO=0), rather than generating signal (again) with the RPC.
Diffstat (limited to 'hurd/hurd-raise.c')
-rw-r--r--hurd/hurd-raise.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/hurd/hurd-raise.c b/hurd/hurd-raise.c
index a31638a1b2..c92c03c6de 100644
--- a/hurd/hurd-raise.c
+++ b/hurd/hurd-raise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994,95,96,97,99 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -41,7 +41,11 @@ _hurd_raise_signal (struct hurd_sigstate *ss,
__spin_unlock (&ss->lock);
- /* Send a message to the signal thread so it
- will wake up and check for pending signals. */
- __msg_sig_post (_hurd_msgport, signo, detail->code, __mach_task_self ());
+ /* Send a message to the signal thread so it will wake up and check for
+ pending signals. This is a generic "poll request" message (SIGNO==0)
+ rather than delivering this signal and its detail, because we have
+ 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 ());
}