summaryrefslogtreecommitdiff
path: root/libports/complete-deallocate.c
diff options
context:
space:
mode:
Diffstat (limited to 'libports/complete-deallocate.c')
-rw-r--r--libports/complete-deallocate.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libports/complete-deallocate.c b/libports/complete-deallocate.c
index 0d852f57..e3123b26 100644
--- a/libports/complete-deallocate.c
+++ b/libports/complete-deallocate.c
@@ -27,7 +27,7 @@ _ports_complete_deallocate (struct port_info *pi)
{
assert ((pi->flags & PORT_HAS_SENDRIGHTS) == 0);
- if (pi->port_right)
+ if (MACH_PORT_VALID (pi->port_right))
{
struct references result;
@@ -37,7 +37,9 @@ _ports_complete_deallocate (struct port_info *pi)
{
/* A reference was reacquired through a hash table lookup.
It's fine, we didn't touch anything yet. */
- pthread_mutex_unlock (&_ports_htable_lock);
+ /* XXX: This really shouldn't happen. */
+ assert (! "reacquired reference w/o send rights");
+ pthread_rwlock_unlock (&_ports_htable_lock);
return;
}