mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-27 19:11:16 +00:00
util: Add more getters to threadpool parameters
In order for the client to see all thread counts and limits, current total and free worker count getters need to be introduced. Client might also be interested in the job queue length, so provide a getter for that too. As with the other getters, preparing for the admin interface, mutual exclusion is used within all getters. Signed-off-by: Erik Skultety <eskultet@redhat.com>
This commit is contained in:
parent
e981607e4a
commit
c516e7d31a
@ -2365,6 +2365,9 @@ virThreadJobSetWorker;
|
||||
|
||||
# util/virthreadpool.h
|
||||
virThreadPoolFree;
|
||||
virThreadPoolGetCurrentWorkers;
|
||||
virThreadPoolGetFreeWorkers;
|
||||
virThreadPoolGetJobQueueDepth;
|
||||
virThreadPoolGetMaxWorkers;
|
||||
virThreadPoolGetMinWorkers;
|
||||
virThreadPoolGetPriorityWorkers;
|
||||
|
@ -317,6 +317,39 @@ size_t virThreadPoolGetPriorityWorkers(virThreadPoolPtr pool)
|
||||
return ret;
|
||||
}
|
||||
|
||||
size_t virThreadPoolGetCurrentWorkers(virThreadPoolPtr pool)
|
||||
{
|
||||
size_t ret;
|
||||
|
||||
virMutexLock(&pool->mutex);
|
||||
ret = pool->nWorkers;
|
||||
virMutexUnlock(&pool->mutex);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
size_t virThreadPoolGetFreeWorkers(virThreadPoolPtr pool)
|
||||
{
|
||||
size_t ret;
|
||||
|
||||
virMutexLock(&pool->mutex);
|
||||
ret = pool->freeWorkers;
|
||||
virMutexUnlock(&pool->mutex);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
size_t virThreadPoolGetJobQueueDepth(virThreadPoolPtr pool)
|
||||
{
|
||||
size_t ret;
|
||||
|
||||
virMutexLock(&pool->mutex);
|
||||
ret = pool->jobQueueDepth;
|
||||
virMutexUnlock(&pool->mutex);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* @priority - job priority
|
||||
* Return: 0 on success, -1 otherwise
|
||||
|
@ -46,6 +46,9 @@ virThreadPoolPtr virThreadPoolNewFull(size_t minWorkers,
|
||||
size_t virThreadPoolGetMinWorkers(virThreadPoolPtr pool);
|
||||
size_t virThreadPoolGetMaxWorkers(virThreadPoolPtr pool);
|
||||
size_t virThreadPoolGetPriorityWorkers(virThreadPoolPtr pool);
|
||||
size_t virThreadPoolGetCurrentWorkers(virThreadPoolPtr pool);
|
||||
size_t virThreadPoolGetFreeWorkers(virThreadPoolPtr pool);
|
||||
size_t virThreadPoolGetJobQueueDepth(virThreadPoolPtr pool);
|
||||
|
||||
void virThreadPoolFree(virThreadPoolPtr pool);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user