diff --git a/src/util/virthreadpool.c b/src/util/virthreadpool.c index e2e9fe4699388e9de201cf95f9f8349537c836c7..7ceb090a998b80fc5b76576e1ed8edf6c504563b 100644 --- a/src/util/virthreadpool.c +++ b/src/util/virthreadpool.c @@ -286,17 +286,35 @@ void virThreadPoolFree(virThreadPoolPtr pool) size_t virThreadPoolGetMinWorkers(virThreadPoolPtr pool) { - return pool->minWorkers; + size_t ret; + + virMutexLock(&pool->mutex); + ret = pool->minWorkers; + virMutexUnlock(&pool->mutex); + + return ret; } size_t virThreadPoolGetMaxWorkers(virThreadPoolPtr pool) { - return pool->maxWorkers; + size_t ret; + + virMutexLock(&pool->mutex); + ret = pool->maxWorkers; + virMutexUnlock(&pool->mutex); + + return ret; } size_t virThreadPoolGetPriorityWorkers(virThreadPoolPtr pool) { - return pool->nPrioWorkers; + size_t ret; + + virMutexLock(&pool->mutex); + ret = pool->nPrioWorkers; + virMutexUnlock(&pool->mutex); + + return ret; } /*