int main(int argc, char *argv[]) { TaskQueue *tq = taskqueue_alloc(); FuncArgs *fa = malloc(sizeof(FuncArgs)); fa->count = 5; Task *t = task_alloc(&func, fa); taskqueue_enqueue(tq, t); taskqueue_run(tq); return 0; }
void taskqueue_free(struct taskqueue *queue) { int s = splhigh(); queue->tq_draining = 1; splx(s); taskqueue_run(queue); s = splhigh(); STAILQ_REMOVE(&taskqueue_queues, queue, taskqueue, tq_link); splx(s); free(queue, M_TASKQUEUE); }
static void taskqueue_swi_run(void) { taskqueue_run(taskqueue_swi); }