pthread_mutexattr_init()

Инициализировать атрибуты мьютекса

Прототип:

#include <pthread.h>
int pthread_mutexattr_init( pthread_mutexattr_t *attr );

Аргументы:

attr
Указатель на объект pthread_mutexattr_t, который требуется инициализировать.

Библиотека:

libc

Описание:

Функция pthread_mutexattr_init() инициализирует атрибуты в объекте атрибутов мьютекса attr их значениями по умолчанию. После инициализации объекта атрибутов мьютекса можно использовать его для инициализации одного или нескольких мьютексов, вызвав pthread_mutex_init().

Атрибуты мьютекса и их значения по умолчанию:

__protocol
PTHREAD_PRIO_INHERIT — когда поток блокирует потоки с более высоким приоритетом, блокируя один или несколько мьютексов с помощью этого атрибута, приоритет потока повышается до приоритета потока с наивысшим приоритетом, ожидающего мьютекса PTHREAD_PRIO_INHERIT.
__recursive
PTHREAD_RECURSIVE_DISABLE — потоки не могут рекурсивно блокировать мьютекс; любой поток, пытающийся заблокировать уже заблокированный мьютекс, становится заблокированным.

После вызова этой функции можно использовать семейство функций pthread_mutexattr_*() для внесения изменений в атрибуты:

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

EOK
Успешное завершение.
ENOMEM
Недостаточно памяти для инициализации объекта attr.

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

POSIX 1003.1 Threads

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

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

pthread_mutex_init(), pthread_mutexattr_destroy(), pthread_mutexattr_getprioceiling(), pthread_mutexattr_getprotocol(), pthread_mutexattr_getpshared(), pthread_mutexattr_getrecursive(), pthread_mutexattr_gettype(), pthread_mutexattr_setprioceiling(), pthread_mutexattr_setprotocol(), pthread_mutexattr_setpshared(), pthread_mutexattr_setrecursive(), pthread_mutexattr_settype()




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