about summary refs log tree commit diff
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
parent1a6a8198a63389cdb0ff4797d1054a7452ea23d3 (diff)
downloadglibc-6a60a937573f8c77251e60850344c5cd53a439b4.tar.gz
glibc-6a60a937573f8c77251e60850344c5cd53a439b4.tar.xz
glibc-6a60a937573f8c77251e60850344c5cd53a439b4.zip
(_hurd_internal_post_signal): In check-for-pending signals code, release _hurd_siglock before jumping to deliver_pending.
-rw-r--r--hurd/hurdsig.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index 595cab624a..5041ea079e 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);