gtaskqueue
struct gtaskqueue;
void gtaskqueue_block(struct gtaskqueue *queue);
void gtaskqueue_unblock(struct gtaskqueue *queue);
int gtaskqueue_cancel(struct gtaskqueue *queue, struct gtask *gtask);
void gtaskqueue_drain(struct gtaskqueue *queue, struct gtask *task);
void gtaskqueue_drain_all(struct gtaskqueue *queue);
int grouptaskqueue_enqueue(struct gtaskqueue *queue, struct gtask *task);
TQ_SLEEP(struct gtaskqueue *tq, void *p, struct mtx *m, int pri, const char *wm,
static struct gtaskqueue *
struct gtaskqueue *queue;
queue = malloc(sizeof(struct gtaskqueue), M_GTASKQUEUE, mflags | M_ZERO);
gtaskqueue_terminate(struct thread **pp, struct gtaskqueue *tq)
gtaskqueue_free(struct gtaskqueue *queue)
struct gtaskqueue *queue = grouptask->gt_taskqueue;
struct gtaskqueue *queue = grouptask->gt_taskqueue;
grouptaskqueue_enqueue(struct gtaskqueue *queue, struct gtask *gtask)
gtaskqueue_drain_tq_queue(struct gtaskqueue *queue)
gtaskqueue_drain_tq_active(struct gtaskqueue *queue)
gtaskqueue_block(struct gtaskqueue *queue)
gtaskqueue_unblock(struct gtaskqueue *queue)
gtaskqueue_run_locked(struct gtaskqueue *queue)
task_is_running(struct gtaskqueue *queue, struct gtask *gtask)
gtaskqueue_cancel_locked(struct gtaskqueue *queue, struct gtask *gtask)
gtaskqueue_cancel(struct gtaskqueue *queue, struct gtask *gtask)
gtaskqueue_drain_locked(struct gtaskqueue *queue, struct gtask *gtask)
gtaskqueue_drain(struct gtaskqueue *queue, struct gtask *gtask)
gtaskqueue_drain_all(struct gtaskqueue *queue)
_gtaskqueue_start_threads(struct gtaskqueue **tqp, int count, int pri,
struct gtaskqueue *tq;
gtaskqueue_start_threads(struct gtaskqueue **tqp, int count, int pri,
gtaskqueue_run_callback(struct gtaskqueue *tq,
struct gtaskqueue **tqp, *tq;
struct gtaskqueue **tqp, *tq;
static int task_is_running(struct gtaskqueue *queue, struct gtask *gtask);
static struct gtaskqueue *
static void gtaskqueue_drain_locked(struct gtaskqueue *queue, struct gtask *gtask);
struct gtaskqueue *tgc_taskq;