pthread_attr_setinheritsched, pthread_attr_getinheritsched -
изменяет/возвращает
атрибут
наследования
планировщика
из объекта
атрибутов
нити
POSIX threads library (
libpthread,
-lpthread)
#include <pthread.h>
int pthread_attr_setinheritsched(pthread_attr_t *attr,
int inheritsched);
int pthread_attr_getinheritsched(const pthread_attr_t *restrict attr,
int *restrict inheritsched);
Функция
pthread_attr_setinheritsched()
изменяет
атрибут
наследования
планировщика
у объекта
атрибутов
нити, на
которую
указывает
attr, на
значение,
заданное в
inheritsched. Атрибут
наследования
планировщика
определяет
будет ли
нить,
создаваемая
с учётом
объекта
атрибутов
нити
attr,
наследовать
свои
атрибуты
планировщика
от
вызывающей
нити или
для этого
будут
использованы
значения
из
attr.
Атрибуты
планирования,
на которые
влияет
атрибут
наследования
планировщика:
алгоритм
планирования
(
pthread_attr_setschedpolicy(3)),
приоритет
планирования
(
pthread_attr_setschedparam(3)) и
область
конкурирования
(
pthread_attr_setscope(3)).
В
inheritsched можно
указать
следующие
значения:
- PTHREAD_INHERIT_SCHED
- Нити,
создаваемые
с учётом attr,
наследуют
атрибуты
планирования
от
создающей
нити;
атрибуты
планирования
attr
игнорируются.
- PTHREAD_EXPLICIT_SCHED
- Нити,
создаваемые
с учётом attr,
берут
значения
атрибутов
планирования
из
указанного
объекта
атрибутов.
Значением
по
умолчанию
для
атрибута
наследования
планировщика
в
инициализируемом
объекте
атрибутов
нити
является
PTHREAD_INHERIT_SCHED.
Функция
pthread_attr_getinheritsched()
возвращает
атрибут
наследования
планировщика
у объекта
атрибутов
нити, на
который
указывает
attr, в буфер
на который
указывает
inheritsched.
При
успешном
выполнении
эти
функции
возвращают
0; при ошибке
возвращается
ненулевой
номер
ошибки.
Функция
pthread_attr_setinheritsched() может
завершиться
со
следующей
ошибкой:
- EINVAL
- Некорректное
значение
inheritsched.
Для
pthread_attr_setinheritsched() в POSIX.1
также
описана
необязательная
ошибка
ENOTSUP
(«попытка
изменить
атрибут на
не
поддерживаемое
значение»).
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
pthread_attr_setinheritsched(),
pthread_attr_getinheritsched() |
Безвредность
в нитях |
MT-Safe |
POSIX.1-2001, POSIX.1-2008.
По
состоянию
на glibc 2.8, если
объект
атрибутов
нити
инициализирован
с помощью
pthread_attr_init(3), то
алгоритму
планирования
в объекте
атрибутов
присваивается
SCHED_OTHER, а
приоритет
планирования
равен 0.
Однако,
если затем
атрибут
наследования
планировщика
устанавливается
в
PTHREAD_EXPLICIT_SCHED, то
нить,
создаваемая
с учётом
объекта
атрибутов,
неправильно
наследует
свои
атрибуты
планирования
от
создающей
нити. Этот
дефект не
проявляется,
если
значение
атрибута
алгоритма
планирования
или
приоритета
планирования
назначается
явно в
объекте
атрибутов
нити до
вызова
pthread_create(3).
Смотрите
pthread_setschedparam(3).
pthread_attr_init(3),
pthread_attr_setschedparam(3),
pthread_attr_setschedpolicy(3),
pthread_attr_setscope(3),
pthread_create(3),
pthread_setschedparam(3),
pthread_setschedprio(3),
pthreads(7),
sched(7)
Русский
перевод
этой
страницы
руководства
был сделан
Alexey, Azamat Hackimov <
[email protected]>, kogamatranslator49
<
[email protected]>, Kogan, Max Is <
[email protected]>, Yuri
Kozlov <
[email protected]> и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]