pthread_mutex_consistent(3)

НАИМЕНОВАНИЕ
pthread_mutex_consistent - делает устойчивый мьютекс согласованным

БИБЛИОТЕКА
Библиотека потоков POSIX (libpthread, -lpthread)

ОБЗОР
#include <pthread.h>

int pthread_mutex_consistent(pthread_mutex_t *mutex);

    Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

pthread_mutex_consistent():
    _POSIX_C_SOURCE >= 200809L

ОПИСАНИЕ
Данная функция делает устойчивый мьютекс согласованным, если он находится в рассогласованном состоянии. Мьютекс может остаться в рассогласованном состоянии, если владелец завершил работу, удерживая мьютекс; в этом случае следующий владелец, захвативший мьютекс вызовом pthread_mutex_lock(), получит уведомление возвращаемым значением EOWNERDEAD .

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
On success, pthread_mutex_consistent() returns 0. Otherwise, it returns a positive error number to indicate the error.

ОШИБКИ

EINVAL
    Мьютекс находит не в согласованном состоянии и не в рассогласованном состоянии.

СТАНДАРТЫ
POSIX.1-2008.

ИСТОРИЯ
glibc 2.12. POSIX.1-2008.

До появления pthread_mutex_consistent() в POSIX, в glibc определялся следующий эквивалент нестандартной функции, если определён _GNU_SOURCE:

[[deprecated]]
int pthread_mutex_consistent_np(const pthread_mutex_t *mutex);

This GNU-specific API, which first appeared in glibc 2.4, is nowadays obsolete and should not be used in new programs; since glibc 2.34 it has been marked as deprecated.

ПРИМЕЧАНИЯ
Функция pthread_mutex_consistent() просто информирует реализацию, что состояние (общие данные) защищаемые мьютексом, были восстановлены в согласованное состояние и что теперь с мьютексом можно выполнять обычные операции. Перед вызовом pthread_mutex_consistent() приложение само должно приводить данные в согласованное состояние.

ПРИМЕРЫ
Смотрите pthread_mutexattr_setrobust(3).

СМОТРИТЕ ТАКЖЕ
pthread_mutex_lock(3), pthread_mutexattr_getrobust(3), pthread_mutexattr_init(3), pthread_mutexattr_setrobust(3), pthreads(7)

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Alexey, Azamat Hackimov <azamat.hackimov@gmail.com>, kogamatranslator49 <r.podarov@yandex.ru>, Darima Kogan <silverdk99@gmail.com>, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).