TDF_PREEMPT_LOCK
TDF_PREEMPT_LOCK |
TDF_PREEMPT_LOCK |
if (td == ntd || ((td->td_flags | ntd->td_flags) & TDF_PREEMPT_LOCK)) {
td->td_flags |= TDF_PREEMPT_LOCK;
td->td_flags &= ~(TDF_PREEMPT_LOCK|TDF_PREEMPT_DONE);
while (td->td_flags & (TDF_RUNNING|TDF_PREEMPT_LOCK)) {
KKASSERT((td->td_flags & (TDF_RUNNING|TDF_PREEMPT_LOCK)) == 0);
KKASSERT((std->td_flags & (TDF_RUNNING|TDF_PREEMPT_LOCK)) == 0);
KKASSERT((td->td_flags & (TDF_RUNNING|TDF_PREEMPT_LOCK|
KKASSERT((td->td_flags & (TDF_RUNNING|TDF_PREEMPT_LOCK|
(TDF_ALLOCATED_THREAD|TDF_RUNNING|TDF_PREEMPT_LOCK)) ==
KKASSERT((td->td_flags & (TDF_RUNNING | TDF_PREEMPT_LOCK |
KKASSERT(ntd->td_flags & TDF_PREEMPT_LOCK);
(otd->td_flags & TDF_PREEMPT_LOCK) == 0) {