Инициализировать атрибуты мьютекса
#include <pthread.h>int pthread_mutexattr_init( pthread_mutexattr_t *attr );
pthread_mutexattr_t
, который требуется инициализировать.libc
Функция pthread_mutexattr_init() инициализирует атрибуты в объекте атрибутов мьютекса attr их значениями по умолчанию. После инициализации объекта атрибутов мьютекса можно использовать его для инициализации одного или нескольких мьютексов, вызвав pthread_mutex_init().
Атрибуты мьютекса и их значения по умолчанию:
PTHREAD_PRIO_INHERIT
— когда поток блокирует потоки с более высоким приоритетом, блокируя один или несколько мьютексов с помощью этого атрибута, приоритет потока повышается до приоритета потока с наивысшим приоритетом, ожидающего мьютекса PTHREAD_PRIO_INHERIT
. PTHREAD_RECURSIVE_DISABLE
— потоки не могут рекурсивно блокировать мьютекс; любой поток, пытающийся заблокировать уже заблокированный мьютекс, становится заблокированным. После вызова этой функции можно использовать семейство функций pthread_mutexattr_*() для внесения изменений в атрибуты:
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 системной библиотеки