aboutsummaryrefslogtreecommitdiff
path: root/hurd
diff options
context:
space:
mode:
authorThomas Bushnell, BSG <thomas@gnu.org>1996-06-28 20:29:45 +0000
committerThomas Bushnell, BSG <thomas@gnu.org>1996-06-28 20:29:45 +0000
commit6a60a937573f8c77251e60850344c5cd53a439b4 (patch)
tree096e92778a3e685fd87bee98981dc3aff2964ce6 /hurd
parent1a6a8198a63389cdb0ff4797d1054a7452ea23d3 (diff)
downloadglibc-6a60a937573f8c77251e60850344c5cd53a439b4.zip
glibc-6a60a937573f8c77251e60850344c5cd53a439b4.tar.gz
glibc-6a60a937573f8c77251e60850344c5cd53a439b4.tar.bz2
(_hurd_internal_post_signal): In check-for-pending signals code, release _hurd_siglock before jumping to deliver_pending.
Diffstat (limited to 'hurd')
-rw-r--r--hurd/hurdsig.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index 595cab6..5041ea0 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -934,7 +934,10 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss,
dropped right away. */
|| ss->actions[signo].sa_handler == SIG_IGN
|| ss->actions[signo].sa_handler == SIG_DFL))
- goto deliver_pending;
+ {
+ mutex_unlock (&_hurd_siglock);
+ goto deliver_pending;
+ }
__spin_unlock (&ss->lock);
}
__mutex_unlock (&_hurd_siglock);