From d99c719a48f456a283aef18031f92e4996ee641d Mon Sep 17 00:00:00 2001 From: Thomas Bushnell Date: Thu, 25 Feb 1999 16:22:28 +0000 Subject: Thu Feb 25 10:31:57 1999 Thomas Bushnell, BSG * end-rpc.c (ports_end_rpc): Signal ports_block anytime an rpc ends and someone is waiting on an inhibition. --- libports/ChangeLog | 5 +++++ 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 + + * 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 * 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 -- cgit v1.2.3