diff options
-rw-r--r-- | term/users.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/term/users.c b/term/users.c index b01efb35..43646e3c 100644 --- a/term/users.c +++ b/term/users.c @@ -1743,7 +1743,11 @@ call_asyncs () return; if ((termflags & ICKY_ASYNC) && !(termflags & NO_OWNER)) - hurd_sig_post (foreground_id, SIGIO, async_icky_id); + { + mutex_unlock (&global_lock); + hurd_sig_post (foreground_id, SIGIO, async_icky_id); + mutex_lock (&global_lock); + } for (ar = async_requests, prevp = &async_requests; ar; @@ -1774,7 +1778,9 @@ send_signal (int signo) right = ports_get_right (cttyid); mach_port_insert_right (mach_task_self (), right, right, MACH_MSG_TYPE_MAKE_SEND); + mutex_unlock (&global_lock); hurd_sig_post (foreground_id, signo, right); + mutex_lock (&global_lock); mach_port_deallocate (mach_task_self (), right); } } |