Lines Matching defs:pool

44 	isc_taskpool_t *pool;
47 pool = isc_mem_get(mctx, sizeof(*pool));
49 pool->mctx = NULL;
50 isc_mem_attach(mctx, &pool->mctx);
51 pool->ntasks = ntasks;
52 pool->quantum = quantum;
53 pool->tmgr = tmgr;
54 pool->tasks = isc_mem_get(mctx, ntasks * sizeof(isc_task_t *));
56 pool->tasks[i] = NULL;
59 *poolp = pool;
66 isc_taskpool_t *pool = NULL;
70 /* Allocate the pool structure */
71 alloc_pool(tmgr, mctx, ntasks, quantum, &pool);
76 &pool->tasks[i], i);
78 isc_taskpool_destroy(&pool);
81 isc_task_setprivilege(pool->tasks[i], priv);
82 isc_task_setname(pool->tasks[i], "taskpool", NULL);
85 *poolp = pool;
90 isc_taskpool_gettask(isc_taskpool_t *pool, isc_task_t **targetp) {
91 isc_task_attach(pool->tasks[isc_random_uniform(pool->ntasks)], targetp);
95 isc_taskpool_size(isc_taskpool_t *pool) {
96 REQUIRE(pool != NULL);
97 return (pool->ntasks);
103 isc_taskpool_t *pool;
108 pool = *sourcep;
110 if (size > pool->ntasks) {
114 /* Allocate a new pool structure */
115 alloc_pool(pool->tmgr, pool->mctx, size, pool->quantum,
118 /* Copy over the tasks from the old pool */
119 for (i = 0; i < pool->ntasks; i++) {
120 newpool->tasks[i] = pool->tasks[i];
121 pool->tasks[i] = NULL;
125 for (i = pool->ntasks; i < size; i++) {
127 isc_task_create_bound(pool->tmgr, pool->quantum,
130 *sourcep = pool;
138 isc_taskpool_destroy(&pool);
139 pool = newpool;
142 *targetp = pool;
149 isc_taskpool_t *pool = *poolp;
151 for (i = 0; i < pool->ntasks; i++) {
152 if (pool->tasks[i] != NULL) {
153 isc_task_detach(&pool->tasks[i]);
156 isc_mem_put(pool->mctx, pool->tasks,
157 pool->ntasks * sizeof(isc_task_t *));
158 isc_mem_putanddetach(&pool->mctx, pool, sizeof(*pool));