pthread_attr_setaffinity_np, pthread_attr_getaffinity_np -
изменяет/возвращает
атрибут
увязывания
ЦП из
объекта
атрибутов
нити
POSIX threads library (
libpthread,
-lpthread)
#define _GNU_SOURCE /* Смотрите feature_test_macros(7) */
#include <pthread.h>
int pthread_attr_setaffinity_np(pthread_attr_t *attr,
size_t cpusetsize, const cpu_set_t *cpuset);
int pthread_attr_getaffinity_np(const pthread_attr_t *attr,
size_t cpusetsize, cpu_set_t *cpuset);
Функция
pthread_attr_setaffinity_np()
изменяет
атрибут
маски
увязывания
ЦП в
объекте
атрибутов
нити, на
который
указывает
attr, в
значение
cpuset. Данным
атрибутом
определяется
маска
увязывания
ЦП у нити,
созданной
с учётом
объекта
атрибутов
нити
attr.
Функция
pthread_attr_getaffinity_np()
возвращает
атрибут
маски
увязывания
ЦП из
объекта
атрибутов
нити, на
который
указывает
attr, в буфер
на который
указывает
cpuset.
В
аргументе
cpusetsize
указывается
длина
буфера (в
байтах), на
который
указывает
cpuset. Обычно,
этот
аргумент
должен
задаваться
как
sizeof(cpu_set_t).
Дополнительную
информацию
по маскам
увязывания
ЦП
смотрите в
sched_setaffinity(2).
Описание
набора
макросов,
которые
можно
использовать
для
просмотра
и
изменения
наборов ЦП,
смотрите в
CPU_SET(3).
При
успешном
выполнении
эти
функции
возвращают
0; при ошибке
возвращается
ненулевой
номер
ошибки.
- EINVAL
- (pthread_attr_setaffinity_np()) В
cpuset указан
ЦП, который
находится
вне набора
поддерживаемых
ядром (в
параметре
сборки
ядра CONFIG_NR_CPUS
определён
диапазон
для набора,
поддерживаемого
типом
данных
ядра,
который
используется
для
представления
наборов
ЦП).
- EINVAL
- (pthread_attr_getaffinity_np()) ЦП
в маске
увязывания
из объекта
атрибутов
нити, на
который
указывает
attr,
находится
вне
диапазона,
задаваемого
cpusetsize (т. е., cpuset/cpusetsize
слишком
мал).
- ENOMEM
- (pthread_attr_setaffinity_np())
Невозможно
выделить
память.
These functions are provided since glibc 2.3.4.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
pthread_attr_setaffinity_np(),
pthread_attr_getaffinity_np() |
Безвредность
в нитях |
MT-Safe |
Данные
функции
являются
не
стандартизированными
расширениями
GNU, о чём
свидетельствует
наличие
суффикса
«_np» (nonportable).
В glibc 2.3.3 версии
этих
функций не
имеют
аргумента
cpusetsize. Вместо
него
размер
набора ЦП,
передаваемый
используемым
системным
вызовам,
всегда
равен
sizeof(cpu_set_t).
sched_setaffinity(2),
pthread_attr_init(3),
pthread_setaffinity_np(3),
cpuset(7),
pthreads(7)
Русский
перевод
этой
страницы
руководства
был сделан
Alexey, Azamat Hackimov <
[email protected]>, kogamatranslator49
<
[email protected]>, Kogan, Max Is <
[email protected]>, Yuri
Kozlov <
[email protected]> и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]