threadpool: Don't wait on condition if pool has no workers

Pool creates new workers dynamically. However, it is possible
for a pool to have no workers. If we want to free that pool,
we don't want to wait on quit condition as it will never be
signaled.
This commit is contained in:
Michal Privoznik 2011-12-09 15:12:37 +01:00
parent 2d5046d31f
commit 3b0bb65dd4

View File

@ -258,7 +258,8 @@ void virThreadPoolFree(virThreadPoolPtr pool)
virCondBroadcast(&pool->prioCond);
}
ignore_value(virCondWait(&pool->quit_cond, &pool->mutex));
if (pool->nWorkers > 0 || pool->nPrioWorkers > 0)
ignore_value(virCondWait(&pool->quit_cond, &pool->mutex));
while ((job = pool->jobList.head)) {
pool->jobList.head = pool->jobList.head->next;