--- auth.c.orig 2009-12-30 17:18:13.000000000 +0100 +++ auth.c 2009-12-30 17:24:25.000000000 +0100 @@ -306,6 +306,8 @@ s->user = userauth; ports_port_ref (userauth); + mach_port_t old; + error_t err2 = mach_port_request_notification(mach_task_self(), rendezvous, MACH_NOTIFY_DEAD_NAME, 0, MACH_PORT_NULL, MACH_MSG_TYPE_MAKE_SEND_ONCE, &old); condition_signal (&s->wakeup); mutex_unlock (&pending_lock); @@ -333,7 +335,10 @@ { hurd_ihash_locp_remove (&pending_users, u.locp); err = EINTR; + ____mylog("auth EINTR\n"); } + mach_port_t old; + error_t err2 = mach_port_request_notification(mach_task_self(), rendezvous, MACH_NOTIFY_DEAD_NAME, 0, MACH_PORT_NULL, MACH_MSG_TYPE_MAKE_SEND_ONCE, &old); } /* The server side has already removed U from the ihash table. */ mutex_unlock (&pending_lock); @@ -393,6 +398,8 @@ /* Give the user the new port and wake the RPC up. */ u->passthrough = newport; + mach_port_t old; + error_t err2 = mach_port_request_notification(mach_task_self(), rendezvous, MACH_NOTIFY_DEAD_NAME, 0, MACH_PORT_NULL, MACH_MSG_TYPE_MAKE_SEND_ONCE, &old); condition_signal (&u->wakeup); mutex_unlock (&pending_lock); } @@ -415,7 +422,10 @@ { hurd_ihash_locp_remove (&pending_servers, s.locp); err = EINTR; + ____mylog("auth EINTR\n"); } + mach_port_t old; + error_t err2 = mach_port_request_notification(mach_task_self(), rendezvous, MACH_NOTIFY_DEAD_NAME, 0, MACH_PORT_NULL, MACH_MSG_TYPE_MAKE_SEND_ONCE, &old); } /* The user side has already removed S from the ihash table. */ mutex_unlock (&pending_lock);