SOASYNC_UNBIND
if (sti->sti_discon_ind_mp != NULL || (so->so_flag & SOASYNC_UNBIND)) {
ASSERT(so->so_flag & (SOLOCKED|SOASYNC_UNBIND));
ASSERT((so->so_flag & SOASYNC_UNBIND) == 0);
so->so_flag |= SOASYNC_UNBIND;
} else if (so->so_flag & (SOASYNC_UNBIND | SOLOCKED)) {
if ((so->so_flag & SOASYNC_UNBIND) &&
so_unlock_single(so, SOASYNC_UNBIND);
if ((so->so_flag & SOASYNC_UNBIND) &&
so_unlock_single(so, SOASYNC_UNBIND);
while (so->so_flag & (SOLOCKED | SOASYNC_UNBIND)) {
ASSERT(flag & (SOLOCKED|SOASYNC_UNBIND));
ASSERT((flag & ~(SOLOCKED|SOASYNC_UNBIND)) == 0);