mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-29 20:11:16 +00:00
Some of the examples make use of asprintf and strtol functions (to keep things simple) which are prohibited to use within our code (enforced by syntax-check). Therefore besides adding some examples, this patch also updates cfg.mk to exclude examples directory from asprintf and strtol rules, as well as updates .gitignore to exclude all the new admin binaries created in the 'examples' dir. Signed-off-by: Erik Skultety <eskultet@redhat.com>
66 lines
2.0 KiB
C
66 lines
2.0 KiB
C
#include<stdio.h>
|
|
#include<stdlib.h>
|
|
#include<libvirt/libvirt-admin.h>
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
int ret = -1;
|
|
virAdmConnectPtr conn = NULL;
|
|
virAdmServerPtr srv = NULL; /* which server to work with */
|
|
virTypedParameterPtr params = NULL;
|
|
int nparams = 0;
|
|
size_t i;
|
|
|
|
if (argc != 2) {
|
|
fprintf(stderr, "One argument specifying the server which to work "
|
|
"with is expected\n");
|
|
return -1;
|
|
}
|
|
|
|
/* first, open a connection to the daemon */
|
|
if (!(conn = virAdmConnectOpen(NULL, 0)))
|
|
goto cleanup;
|
|
|
|
/* a server handle is necessary before any API regarding threadpool
|
|
* parameters can be issued
|
|
*/
|
|
if (!(srv = virAdmConnectLookupServer(conn, argv[1], 0)))
|
|
goto cleanup;
|
|
|
|
/* get the current threadpool parameters */
|
|
if (virAdmServerGetThreadPoolParameters(srv, ¶ms, &nparams, 0) < 0)
|
|
goto cleanup;
|
|
|
|
for (i = 0; i < nparams; i++)
|
|
printf("%-15s: %d\n", params[i].field, params[i].value.ui);
|
|
|
|
virTypedParamsFree(params, nparams);
|
|
params = NULL;
|
|
nparams = 0;
|
|
|
|
/* let's set minWorkers to 10, maxWorkers to 15 and prioWorkers to 10 */
|
|
int maxparams = 0;
|
|
if (virTypedParamsAddUInt(¶ms, &nparams, &maxparams,
|
|
VIR_THREADPOOL_WORKERS_MIN, 10) < 0 ||
|
|
virTypedParamsAddUInt(¶ms, &nparams, &maxparams,
|
|
VIR_THREADPOOL_WORKERS_MAX, 15) < 0 ||
|
|
virTypedParamsAddUInt(¶ms, &nparams, &maxparams,
|
|
VIR_THREADPOOL_WORKERS_PRIORITY, 10) < 0)
|
|
goto cleanup;
|
|
|
|
/* now, change the threadpool settings to some different values */
|
|
if (virAdmServerSetThreadPoolParameters(srv, params, nparams, 0) < 0)
|
|
goto cleanup;
|
|
|
|
ret = 0;
|
|
cleanup:
|
|
virTypedParamsFree(params, nparams);
|
|
|
|
/* Once finished deallocate the server handle and close the connection
|
|
* properly, @conn will be deallocated automatically
|
|
*/
|
|
virAdmServerFree(srv);
|
|
virAdmConnectClose(conn);
|
|
return ret;
|
|
}
|