Print this page
patch remove-dont-swap-flag

*** 191,201 **** { if (panicstr) return; ASSERT(!quiesce_active); - ASSERT(curthread->t_schedflag & TS_DONT_SWAP); thread_lock(curthread); /* lock the thread */ cv_block((condvar_impl_t *)cvp); thread_unlock_nopreempt(curthread); /* unlock the waiters field */ mutex_exit(mp); swtch(); --- 191,200 ----
*** 324,334 **** cv_wait(cvp, mp); return (rval); } ASSERT(t->t_intr == NULL); - ASSERT(curthread->t_schedflag & TS_DONT_SWAP); cancel_pending = schedctl_cancel_pending(); lwp->lwp_asleep = 1; lwp->lwp_sysabort = 0; thread_lock(t); cv_block_sig(t, (condvar_impl_t *)cvp); --- 323,332 ----
*** 552,573 **** lwp->lwp_asleep = 1; lwp->lwp_sysabort = 0; thread_lock(t); t->t_kpri_req = 0; /* don't need kernel priority */ cv_block_sig(t, (condvar_impl_t *)cvp); - /* I can be swapped now */ - curthread->t_schedflag &= ~TS_DONT_SWAP; thread_unlock_nopreempt(t); mutex_exit(mp); if (ISSIG(t, JUSTLOOKING) || MUSTRETURN(p, t) || cancel_pending) setrun(t); /* ASSERT(no locks are held) */ swtch(); signalled = (t->t_schedflag & TS_SIGNALLED); t->t_flag &= ~T_WAKEABLE; - /* TS_DONT_SWAP set by disp() */ - ASSERT(curthread->t_schedflag & TS_DONT_SWAP); mutex_enter(mp); if (ISSIG_PENDING(t, lwp, p)) { mutex_exit(mp); if (issig(FORREAL)) rval = 0; --- 550,567 ----