src/server/util/thrpool.c

branch
webdav
changeset 358
f3b490a2150c
parent 357
f45e962edf45
child 408
56edda8701e0
equal deleted inserted replaced
357:f45e962edf45 358:f3b490a2150c
104 pthread_mutex_unlock(&pool->queue_lock); 104 pthread_mutex_unlock(&pool->queue_lock);
105 return job; 105 return job;
106 } 106 }
107 107
108 void threadpool_run(threadpool_t *pool, job_callback_f func, void *data) { 108 void threadpool_run(threadpool_t *pool, job_callback_f func, void *data) {
109 // TODO: handle errors
110
111 if(pool->num_threads == 0) {
112 threadpool_start(pool);
113 }
114
109 threadpool_job *job = malloc(sizeof(threadpool_job)); 115 threadpool_job *job = malloc(sizeof(threadpool_job));
110 job->callback = func; 116 job->callback = func;
111 job->data = data; 117 job->data = data;
112 118
113 pthread_mutex_lock(&pool->queue_lock); 119 pthread_mutex_lock(&pool->queue_lock);

mercurial