pthread_mutexattr_getprotocol()

Получить протокол планирования мьютекса

Прототип:

#include <pthread.h>
int pthread_mutexattr_getprotocol( pthread_mutexattr *attr,
int *protocol );

Аргументы:

attr
Указатель на объект pthread_mutexattr_t, из которого требуется получить атрибут.
protocol
Указатель на место, где функция может хранить протокол планирования.

Библиотека:

libc

Описание:

Функция pthread_mutexattr_getprotocol() устанавливает протокол для текущего атрибута мьютекса attr протокол планирования. Структура, на которую указывает attr, должна быть предварительно создана с помощью pthread_mutexattr_init().

Атрибут protocol определяет протокол для использования мьютексов:

В настоящее время protocol может иметь значение:

PTHREAD_PRIO_INHERIT
Когда поток блокирует потоки с более высоким приоритетом, блокируя один или несколько мьютексов с помощью этого атрибута, приоритет потока повышается до приоритета потока с наивысшим приоритетом, ожидающего мьютекса PTHREAD_PRIO_INHERIT.
PTHREAD_PRIO_PROTECT
Поток выполняется с наивысшим приоритетом или с максимальным приоритетом всех мьютексов, принадлежащих потоку и инициализированных с помощью PTHREAD_PRIO_PROTECT, независимо от того, заблокированы другие потоки или нет.
PTHREAD_PRIO_NONE
Владение мьютексом не влияет на приоритет и планирование потока.

Поток, содержащий мьютекс PTHREAD_PRIO_INHERIT, не будет перемещен в конец очереди планирования, если его первоначальный приоритет изменится (например, после вызова pthread_setschedparam()). Это также верно, если поток разблокирует мьютекс PTHREAD_PRIO_INHERIT.

Возвращаемое значение:

EOK
Успешное завершение.
EINVAL
Некорректный объект attr.

Классификация:

POSIX 1003.1 THR TPP|TPI

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

pthread_mutexattr_setprotocol(), pthread_mutexattr_setrecursive(), pthread_mutexattr_settype()




Предыдущий раздел: Описание API системной библиотеки