diff options
Diffstat (limited to 'libports')
-rw-r--r-- | libports/ChangeLog | 5 | ||||
-rw-r--r-- | libports/end-rpc.c | 10 |
2 files changed, 10 insertions, 5 deletions
diff --git a/libports/ChangeLog b/libports/ChangeLog index c7b6cd48..fc4bc0bc 100644 --- a/libports/ChangeLog +++ b/libports/ChangeLog @@ -1,3 +1,8 @@ +Thu Feb 25 10:31:57 1999 Thomas Bushnell, BSG <tb@mit.edu> + + * end-rpc.c (ports_end_rpc): Signal ports_block anytime an rpc + ends and someone is waiting on an inhibition. + 1999-01-01 Roland McGrath <roland@baalperazim.frob.com> * interrupt-on-notify.c (ports_interrupt_self_on_notification): Use diff --git a/libports/end-rpc.c b/libports/end-rpc.c index d2aceedf..47fd1ae7 100644 --- a/libports/end-rpc.c +++ b/libports/end-rpc.c @@ -1,5 +1,5 @@ /* - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc. Written by Michael I. Bushnell. This file is part of the GNU Hurd. @@ -38,10 +38,10 @@ ports_end_rpc (void *port, struct rpc_info *info) _ports_total_rpcs--; pi->bucket->rpcs--; - if ((!pi->current_rpcs && (pi->flags & PORT_INHIBIT_WAIT)) - || (!pi->bucket->rpcs && (pi->bucket->flags & PORT_BUCKET_INHIBIT_WAIT)) - || (!pi->class->rpcs && (pi->class->flags & PORT_CLASS_INHIBIT_WAIT)) - || (!_ports_total_rpcs && (_ports_flags & _PORTS_INHIBIT_WAIT))) + if ((pi->flags & PORT_INHIBIT_WAIT) + || (pi->bucket->flags & PORT_BUCKET_INHIBIT_WAIT) + || (pi->class->flags & PORT_CLASS_INHIBIT_WAIT) + || (_ports_flags & _PORTS_INHIBIT_WAIT)) condition_broadcast (&_ports_block); /* This removes the current thread's rpc (which should be INFO) from the |