The interlock in taskqueue_terminate() is completely wrong for taskqueues
that use spinlocks. Remove it for now.
This commit is contained in:
parent
57bb282532
commit
a1e420856f
@ -145,11 +145,7 @@ taskqueue_terminate(struct proc **pp, struct taskqueue *tq)
|
||||
*pp = NULL;
|
||||
if (p) {
|
||||
wakeup_one(tq);
|
||||
PROC_LOCK(p); /* NB: insure we don't miss wakeup */
|
||||
TQ_UNLOCK(tq); /* let taskqueue thread run */
|
||||
TQ_SLEEP(tq, p, &p->p_mtx, PWAIT, "taskqueue_destroy", 0);
|
||||
PROC_UNLOCK(p);
|
||||
TQ_LOCK(tq);
|
||||
TQ_SLEEP(tq, p, &tq->tq_mutex, PWAIT, "taskqueue_destroy", 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user