diff options
Diffstat (limited to 'libports/complete-deallocate.c')
-rw-r--r-- | libports/complete-deallocate.c | 6 |
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; } |