Run all tasks from a proper context, with proper priority, etc. Index: sys/kern/subr_taskqueue.c =================================================================== --- sys/kern/subr_taskqueue.c (wersja 211137) +++ sys/kern/subr_taskqueue.c (kopia robocza) @@ -141,7 +141,6 @@ TQ_LOCK(queue); queue->tq_flags &= ~TQ_FLAGS_ACTIVE; - taskqueue_run(queue, &queue->tq_running); taskqueue_terminate(queue->tq_threads, queue); mtx_destroy(&queue->tq_mutex); free(queue->tq_threads, M_TASKQUEUE); @@ -379,6 +378,7 @@ break; TQ_SLEEP(tq, tq, &tq->tq_mutex, 0, "-", 0); } + taskqueue_run(queue, &queue->tq_running); /* rendezvous with thread that asked us to terminate */ tq->tq_tcount--;