PTHREAD_MUTEX_CONSISTENT(3) | Руководство программиста Linux | PTHREAD_MUTEX_CONSISTENT(3) |
pthread_mutex_consistent - делает устойчивый мьютекс согласованным
#include <pthread.h>
int pthread_mutex_consistent(pthread_mutex_t *mutex);
Компилируется и компонуется вместе с -pthread.
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
pthread_mutex_consistent():
Данная функция делает устойчивый мьютекс согласованным, если он находится в рассогласованном состоянии. Мьютекс может остаться в рассогласованном состоянии, если владелец завершил работу, удерживая мьютекс; в этом случае следующий владелец, захвативший мьютекс вызовом pthread_mutex_lock(), получит уведомление возвращаемым значением EOWNERDEAD .
При успешном выполнении pthread_mutex_consistent() возвращает 0. В противном случае возвращается положительный номер, указывающий на причину ошибки.
Функция pthread_mutex_consistent() впервые появилась в glibc 2.12.
POSIX.1-2008.
Функция pthread_mutex_consistent() просто информирует реализацию, что состояние (общие данные) защищаемые мьютексом, были восстановлены в согласованное состояние и что теперь с мьютексом можно выполнять обычные операции. Перед вызовом pthread_mutex_consistent() приложение само должно приводить данные в согласованное состояние.
До появления pthread_mutex_consistent() в POSIX, в glibc определялся следующий эквивалент нестандартной функции, если определён _GNU_SOURCE:
int pthread_mutex_consistent(const pthread_mutex_t *mutex);
Данный имеющийся только в GNU программный интерфейс, впервые появившийся в glibc 2.4, в настоящее время устарел и не должен использоваться в новых программах.
Смотрите pthread_mutexattr_setrobust(3).
pthread_mutexattr_init(3), pthread_mutex_lock(3), pthread_mutexattr_setrobust(3), pthread_mutexattr_getrobust(3), pthreads(7)
2017-08-20 | Linux |