AFFINITY(3) | Library Functions Manual | AFFINITY(3) |
pthread_setaffinity_np
,
pthread_getaffinity_np
—
#include <pthread.h>
#include <sched.h>
int
pthread_setaffinity_np
(pthread_t
thread, size_t
size, cpuset_t
*set);
int
pthread_getaffinity_np
(pthread_t
thread, size_t
size, cpuset_t
*set);
The pthread_setaffinity_np
() function sets
the affinity mask set for
thread. At least one valid CPU must be set in the
mask.
The pthread_getaffinity_np
() function gets
the affinity mask of thread into
set. Note that set must be
created and initialized using the
cpuset(3) functions.
pthread_setaffinity_np
requires super-user
privileges. Ordinary users can be allowed to control CPU affinity of their
threads via the
security.models.extensions.user_set_cpu_affinity
sysctl(7). See
secmodel_extensions(9).
Portable applications should not use the
pthread_setaffinity_np
() and
pthread_getaffinity_np
() functions.
pthread_setaffinity_np
() and
pthread_getaffinity_np
() functions return 0 on
success. Otherwise, an error number is returned to indicate the error.
cpuset_t *cset; pthread_t pth; cpuid_t ci; cset = cpuset_create(); if (cset == NULL) { err(EXIT_FAILURE, "cpuset_create"); } ci = 0; cpuset_set(ci, cset); pth = pthread_self(); error = pthread_setaffinity_np(pth, cpuset_size(cset), cset); if (error) { ... } cpuset_destroy(cset);
December 4, 2011 | NetBSD 9.2 |