Lines Matching defs:tpu
239 struct threadpool_unbound *tpu;
241 LIST_FOREACH(tpu, &unbound_threadpools, tpu_link) {
242 if (tpu->tpu_pool.tp_pri == pri)
243 return tpu;
249 threadpool_insert_unbound(struct threadpool_unbound *tpu)
251 KASSERT(threadpool_lookup_unbound(tpu->tpu_pool.tp_pri) == NULL);
252 LIST_INSERT_HEAD(&unbound_threadpools, tpu, tpu_link);
256 threadpool_remove_unbound(struct threadpool_unbound *tpu)
258 KASSERT(threadpool_lookup_unbound(tpu->tpu_pool.tp_pri) == tpu);
259 LIST_REMOVE(tpu, tpu_link);
496 struct threadpool_unbound *tpu, *tmp = NULL;
507 tpu = threadpool_lookup_unbound(pri);
508 if (tpu == NULL) {
518 tpu = threadpool_lookup_unbound(pri);
519 if (tpu == NULL) {
520 tpu = tmp;
522 threadpool_insert_unbound(tpu);
527 KASSERT(tpu != NULL);
528 tpu->tpu_refcnt++;
529 KASSERT(tpu->tpu_refcnt != 0);
536 KASSERT(tpu != NULL);
537 *poolp = &tpu->tpu_pool;
544 struct threadpool_unbound *tpu =
553 KASSERT(tpu == threadpool_lookup_unbound(pri));
554 KASSERT(0 < tpu->tpu_refcnt);
555 if (--tpu->tpu_refcnt == 0) {
557 threadpool_remove_unbound(tpu);
559 tpu = NULL;
563 if (tpu) {
564 threadpool_destroy(&tpu->tpu_pool);
565 kmem_free(tpu, sizeof(*tpu));