summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>1996-01-19 00:34:09 +0000
committerMiles Bader <miles@gnu.org>1996-01-19 00:34:09 +0000
commit549149a2df67ab632a5f358f7dea4bba0537c84f (patch)
tree0ca1132218daa5d90b54518642621f88d7306ae3
parenteb5616108ddc7fed7da94c9caf935c06b1106f2f (diff)
(ports_no_senders):
Interrupt RPCs on PI too. Only do the ports_interrupt_notified_rpcs() if we're actually losing a ref.
-rw-r--r--libports/no-senders.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/libports/no-senders.c b/libports/no-senders.c
index fb9ccbb2..9430c3e0 100644
--- a/libports/no-senders.c
+++ b/libports/no-senders.c
@@ -29,9 +29,6 @@ ports_no_senders (void *portstruct,
struct port_info *pi = portstruct;
int dealloc;
mach_port_t old;
-
- ports_interrupt_notified_rpcs (portstruct, pi->port_right,
- MACH_NOTIFY_NO_SENDERS);
mutex_lock (&_ports_lock);
if ((pi->flags & PORT_HAS_SENDRIGHTS) == 0)
@@ -60,5 +57,10 @@ ports_no_senders (void *portstruct,
mutex_unlock (&_ports_lock);
if (dealloc)
- ports_port_deref (pi);
+ {
+ ports_interrupt_notified_rpcs (portstruct, pi->port_right,
+ MACH_NOTIFY_NO_SENDERS);
+ ports_interrupt_rpc (pi);
+ ports_port_deref (pi);
+ }
}