Provided by: manpages-ru-dev_4.18.1-1_all bug

ИМЯ

       pthread_attr_setinheritsched,  pthread_attr_getinheritsched  - изменяет/возвращает атрибут
       наследования планировщика из объекта атрибутов нити

LIBRARY

       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(),                        │ Безвредность в нитях │ MT-Safe  │
       │pthread_attr_getinheritsched()                         │                      │          │
       └───────────────────────────────────────────────────────┴──────────────────────┴──────────┘

СТАНДАРТЫ

       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
       <azamat.hackimov@gmail.com>, kogamatranslator49 <r.podarov@yandex.ru>, Kogan, Max Is
       <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот перевод является бесплатной документацией; прочитайте Стандартную общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.