summaryrefslogtreecommitdiff
path: root/term
diff options
context:
space:
mode:
authorMichael I. Bushnell <mib@gnu.org>1995-12-20 01:20:16 +0000
committerMichael I. Bushnell <mib@gnu.org>1995-12-20 01:20:16 +0000
commitd6f441166420f08076aca71e705738b05f14a2e2 (patch)
tree98aa82e31dd183c171aeeb769906a18bb8a8e907 /term
parent1e4c80c802285dd341cc409ea92cf1eada01da98 (diff)
(send_signal): Release global_lock around signal RPC.
(call_asyncs): Likewise.
Diffstat (limited to 'term')
-rw-r--r--term/users.c8
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);
}
}