Tom Judge wrote:
Do I need to hold the per thread lock here? (This is for 7.1)PROC_LOCK(p); //mtx_lock_spin(&sched_lock); breakout = 0; FOREACH_THREAD_IN_PROC(p, td) { thread_lock(td); if (!TD_ON_RUNQ(td) && !TD_IS_RUNNING(td) && !TD_IS_SLEEPING(td)) { breakout = 1; thread_unlock(td); break; } thread_unlock(td); } //mtx_unlock_spin(&sched_lock); PROC_UNLOCK(p);
"probably not" because the value in the status word can change just after you release it anyhow so your result does not have to be consistent with anything, just with itself.
Thanks Tom _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[email protected]"
_______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[email protected]"

