mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 20:45:18 +00:00
Add APIs for virThreadPoolPtr to query some config params
It is desirable to be able to query the config params of the thread pool, in order to save the server state. Add virThreadPoolGetMinWorkers, virThreadPoolGetMaxWorkers and virThreadPoolGetPriorityWorkers APIs. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
ecf00158ff
commit
2241582c6a
@ -1086,6 +1086,9 @@ virSysinfoRead;
|
||||
virThreadPoolFree;
|
||||
virThreadPoolNew;
|
||||
virThreadPoolSendJob;
|
||||
virThreadPoolGetMinWorkers;
|
||||
virThreadPoolGetMaxWorkers;
|
||||
virThreadPoolGetPriorityWorkers;
|
||||
|
||||
|
||||
# threads.h
|
||||
|
@ -66,6 +66,7 @@ struct _virThreadPool {
|
||||
virCond quit_cond;
|
||||
|
||||
size_t maxWorkers;
|
||||
size_t minWorkers;
|
||||
size_t freeWorkers;
|
||||
size_t nWorkers;
|
||||
virThreadPtr workers;
|
||||
@ -188,7 +189,9 @@ virThreadPoolPtr virThreadPoolNew(size_t minWorkers,
|
||||
if (VIR_ALLOC_N(pool->workers, minWorkers) < 0)
|
||||
goto error;
|
||||
|
||||
pool->minWorkers = minWorkers;
|
||||
pool->maxWorkers = maxWorkers;
|
||||
|
||||
for (i = 0; i < minWorkers; i++) {
|
||||
if (VIR_ALLOC(data) < 0) {
|
||||
virReportOOMError();
|
||||
@ -277,6 +280,22 @@ void virThreadPoolFree(virThreadPoolPtr pool)
|
||||
VIR_FREE(pool);
|
||||
}
|
||||
|
||||
|
||||
size_t virThreadPoolGetMinWorkers(virThreadPoolPtr pool)
|
||||
{
|
||||
return pool->minWorkers;
|
||||
}
|
||||
|
||||
size_t virThreadPoolGetMaxWorkers(virThreadPoolPtr pool)
|
||||
{
|
||||
return pool->maxWorkers;
|
||||
}
|
||||
|
||||
size_t virThreadPoolGetPriorityWorkers(virThreadPoolPtr pool)
|
||||
{
|
||||
return pool->nPrioWorkers;
|
||||
}
|
||||
|
||||
/*
|
||||
* @priority - job priority
|
||||
* Return: 0 on success, -1 otherwise
|
||||
|
@ -39,6 +39,10 @@ virThreadPoolPtr virThreadPoolNew(size_t minWorkers,
|
||||
virThreadPoolJobFunc func,
|
||||
void *opaque) ATTRIBUTE_NONNULL(4);
|
||||
|
||||
size_t virThreadPoolGetMinWorkers(virThreadPoolPtr pool);
|
||||
size_t virThreadPoolGetMaxWorkers(virThreadPoolPtr pool);
|
||||
size_t virThreadPoolGetPriorityWorkers(virThreadPoolPtr pool);
|
||||
|
||||
void virThreadPoolFree(virThreadPoolPtr pool);
|
||||
|
||||
int virThreadPoolSendJob(virThreadPoolPtr pool,
|
||||
|
Loading…
x
Reference in New Issue
Block a user