Lines Matching refs:tq

85 #define	TQ_LOCK(tq)							\  argument
87 if ((tq)->tq_spin) \
88 mtx_lock_spin(&(tq)->tq_mutex); \
90 mtx_lock(&(tq)->tq_mutex); \
92 #define TQ_ASSERT_LOCKED(tq) mtx_assert(&(tq)->tq_mutex, MA_OWNED) argument
94 #define TQ_UNLOCK(tq) \ argument
96 if ((tq)->tq_spin) \
97 mtx_unlock_spin(&(tq)->tq_mutex); \
99 mtx_unlock(&(tq)->tq_mutex); \
101 #define TQ_ASSERT_UNLOCKED(tq) mtx_assert(&(tq)->tq_mutex, MA_NOTOWNED) argument
116 TQ_SLEEP(struct taskqueue *tq, void *p, struct mtx *m, int pri, const char *wm, in TQ_SLEEP() argument
119 if (tq->tq_spin) in TQ_SLEEP()
188 taskqueue_terminate(struct thread **pp, struct taskqueue *tq) in taskqueue_terminate() argument
191 while (tq->tq_tcount > 0 || tq->tq_callouts > 0) { in taskqueue_terminate()
192 wakeup(tq); in taskqueue_terminate()
193 TQ_SLEEP(tq, pp, &tq->tq_mutex, PWAIT, "taskqueue_destroy", 0); in taskqueue_terminate()
593 struct taskqueue *tq; in _taskqueue_start_threads() local
600 tq = *tqp; in _taskqueue_start_threads()
602 tq->tq_threads = malloc(sizeof(struct thread *) * count, M_TASKQUEUE, in _taskqueue_start_threads()
604 if (tq->tq_threads == NULL) { in _taskqueue_start_threads()
612 &tq->tq_threads[i], RFSTOPPED, 0, "%s", ktname); in _taskqueue_start_threads()
615 &tq->tq_threads[i], RFSTOPPED, 0, in _taskqueue_start_threads()
621 tq->tq_threads[i] = NULL; /* paranoid */ in _taskqueue_start_threads()
623 tq->tq_tcount++; in _taskqueue_start_threads()
626 if (tq->tq_threads[i] == NULL) in _taskqueue_start_threads()
628 td = tq->tq_threads[i]; in _taskqueue_start_threads()
678 taskqueue_run_callback(struct taskqueue *tq, in taskqueue_run_callback() argument
683 TQ_ASSERT_UNLOCKED(tq); in taskqueue_run_callback()
684 tq_callback = tq->tq_callbacks[cb_type]; in taskqueue_run_callback()
686 tq_callback(tq->tq_cb_contexts[cb_type]); in taskqueue_run_callback()
692 struct taskqueue **tqp, *tq; in taskqueue_thread_loop() local
695 tq = *tqp; in taskqueue_thread_loop()
696 taskqueue_run_callback(tq, TASKQUEUE_CALLBACK_TYPE_INIT); in taskqueue_thread_loop()
697 TQ_LOCK(tq); in taskqueue_thread_loop()
698 while ((tq->tq_flags & TQ_FLAGS_ACTIVE) != 0) { in taskqueue_thread_loop()
700 taskqueue_run_locked(tq); in taskqueue_thread_loop()
706 if ((tq->tq_flags & TQ_FLAGS_ACTIVE) == 0) in taskqueue_thread_loop()
708 TQ_SLEEP(tq, tq, &tq->tq_mutex, 0, "-", 0); in taskqueue_thread_loop()
710 taskqueue_run_locked(tq); in taskqueue_thread_loop()
717 TQ_UNLOCK(tq); in taskqueue_thread_loop()
718 taskqueue_run_callback(tq, TASKQUEUE_CALLBACK_TYPE_SHUTDOWN); in taskqueue_thread_loop()
719 TQ_LOCK(tq); in taskqueue_thread_loop()
722 tq->tq_tcount--; in taskqueue_thread_loop()
723 wakeup_one(tq->tq_threads); in taskqueue_thread_loop()
724 TQ_UNLOCK(tq); in taskqueue_thread_loop()
731 struct taskqueue **tqp, *tq; in taskqueue_thread_enqueue() local
734 tq = *tqp; in taskqueue_thread_enqueue()
736 wakeup_one(tq); in taskqueue_thread_enqueue()