| 170 | } |
| 171 | |
| 172 | static void __unused |
| 173 | gtaskqueue_free(struct gtaskqueue *queue) |
| 174 | { |
| 175 | |
| 176 | TQ_LOCK(queue); |
| 177 | queue->tq_flags &= ~TQ_FLAGS_ACTIVE; |
| 178 | gtaskqueue_terminate(queue->tq_threads, queue); |
| 179 | KASSERT(LIST_EMPTY(&queue->tq_active), ("Tasks still running?")); |
| 180 | KASSERT(queue->tq_callouts == 0, ("Armed timeout tasks")); |
| 181 | mtx_destroy(&queue->tq_mutex); |
| 182 | free(queue->tq_threads, M_GTASKQUEUE); |
| 183 | free(queue->tq_name, M_GTASKQUEUE); |
| 184 | free(queue, M_GTASKQUEUE); |
| 185 | } |
| 186 | |
| 187 | /* |
| 188 | * Wait for all to complete, then prevent it from being enqueued |
nothing calls this directly
no test coverage detected