pthread_attr_getinheritsched, pthread_attr_setinheritsched
Имя
pthread_attr_getinheritsched, pthread_attr_setinheritsched— функции считывания и установки атрибута inheritsched (REALTIME THREADS).
Синопсис
THRTPS #include <pthread.h>
int pthread_attr_getinheritsched (
const pthread_attr_t *restrict attr, int *restrict inheritsched);
int pthread_attr_setinheritsched (pthread_attr_t *attr,
int inheritsched);
Описание
Функции pthread_attr_getinheritsched() и pthread_attr_setinheritsched() используются для считывания и установки соответственно атрибута inheri tsched в объекте, заданно м пара м етро м аttr.
Если при вызове функции pthread_create () используются объекты атрибутов, то атрибут inheritsched определяет, как будут устанавливаться другие атрибуты планирования создавае м ого потока.
Значение PTHREAD_INHERIT_SCHED говорит о то м, что атрибуты планирования потоков наследуются от создающего потока, а атрибуты планирования, содержащиеся в объекте, заданно м пара м етро м attr, игнорируются.
Значение PTHREAD_EXPLICIT_SCHED подразу м евает, что атрибуты планирования потоков устанавливаются равны м и соответствующи м значения м, содержащи м ся в объекте атрибутов, заданно м пара м етро м attr.
Значения PTHREAD_INHERIT_SCHED и PTHREAD_EXPLICIT_SCHED определяются в заголовке <pthread. h>.
От значения атрибута inheritsched зависят следующие атрибуты планирования потоков, определенные стандарто м IEEE Std ЮОЗ.1-2001: стратегия планирования (schedpolicy), пара м етры планирования (schedparam) и область конкуренции (contentionscope).
Возвращаемые значения
При успешно м завершении функции pthread_attr_getinheritsched() Hpthread_attr_setinheritsched() возвращают нулевое значение; в противном случае — код ошибки, обозначающий ее характер.
Ошибки
Функция pthread_attr_setinheritsched () м ожет завершиться неудачно, если:
[EINVAL] значение, заданное пара м етро м inheri tsched, недействительно;
[ENOTSUP] была сделана попытка установить атрибут равны м значению, которое не поддерживается реализацией.
Эти функции не возвра щ ают код ошибки [ EINTR].
Примеры
Отсутствуют.
Замечания по использованию
После установки этих атрибутов поток м ожно создать путе м вызова функции pthread_create () с заданны м и атрибута м и. Использование этих функций не оказывает влияния на поток, выполняе м ый в данный м о м ент.
Логическое обоснование
Отсутствует.
Будущие направления
Отсутствуют.
Смотри также
pthread_attr_destroy (), pthread_attr_getscope (), pthread_attr_getschedpolicy(), pthread_attr_getschedparam(), pthread_create (), то м Base Definitions стандарта IEEE Std 1003.1-2001, <pthread.h>, <sched.h>.
Последовательность внесения изменений
Функции впервые реализованы в выпуске Issue 5. Включены для согласования с расширение м POSIX Threads Extension.
От м ечены как часть группы Realtime Threads Feature Group.
Issue 6
Функции pthread_attr_getinheritsched() и pthread_attr_setinheritsched () от м ечены как часть опций Threads и Thread Execution Scheduling.
Условие ошибки [ENOSYS] было удалено,поскольку в заглушках нет необходимости, если реализация не поддерживает опцию Thread Execution Scheduling.
В целях согласования со стандартом ISO/IEC 9899: 1999 в прототип функции pthread_attr_getinheritsched () было добавлено ключевое слово restrict.
Больше книг — больше знаний!
Заберите 30% скидку новым пользователям на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ