Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       pthread_rwlockattr_setkind_np,   pthread_rwlockattr_getkind_np   -   изменяет/возвращает  вид  блокировки
       чтения-записи у объекта-атрибута блокировки чтения-записи нити

LIBRARY

       POSIX threads library (libpthread, -lpthread)

СИНТАКСИС

       #include <pthread.h>

       int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *attr,
                              int pref);
       int pthread_rwlockattr_getkind_np(
                              const pthread_rwlockattr_t *restrict attr,
                              int *restrict pref);

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

       pthread_rwlockattr_setkind_np(), pthread_rwlockattr_getkind_np():
           _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200809L

ОПИСАНИЕ

       Функция pthread_rwlockattr_setkind_np() изменяет атрибут «вида блокировки» у объекта-атрибута  блокировки
       чтения-записи, на который указывает attr, в значение pref. Значением pref может быть одно из:

       PTHREAD_RWLOCK_PREFER_READER_NP
              Значение  по  умолчанию.  Нить может удерживать многократную блокировку чтения; то есть блокировки
              чтения рекурсивны. Согласно Single Unix Specification,  поведение  не  определено,  если  читатель
              пытается   установить  блокировку  и  отсутствует  блокировка  записи,  но  писатели  ждут.  Давая
              преимущество читателю установкой  PTHREAD_RWLOCK_PREFER_READER_NP  подразумевается,  что  читатель
              будет  получать  запрашиваемую  блокировку  даже,  если ждёт писатель. Пока есть читатели писатель
              будет ждать.

       PTHREAD_RWLOCK_PREFER_WRITER_NP
              This is intended as the write lock analog of PTHREAD_RWLOCK_PREFER_READER_NP.  This is ignored  by
              glibc  because  the  POSIX  requirement to support recursive read locks would cause this option to
              create trivial deadlocks; instead use PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP  which  ensures
              the application developer will not take recursive read locks thus avoiding deadlocks.

       PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
              Данный  вид  блокировки  помогает  избежать  ожидания  писателя  всё  время  пока  не  освободится
              рекурсивная блокировка чтения.

       Функция pthread_rwlockattr_getkind_np() сохраняет атрибут «вида блокировки» у объекта-атрибута блокировки
       чтения-записи, на который указывает attr, в указатель pref.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       При  успешном   выполнении   эти   функции   возвращают   0.   При   корректных   аргументах   указателей
       pthread_rwlockattr_getkind_np()  всегда  выполняется  успешно. При ошибке pthread_rwlockattr_setkind_np()
       возвращает ненулевой номер ошибки.

ОШИБКИ

       EINVAL Неподдерживаемое значение pref.

ВЕРСИИ

       Функции pthread_rwlockattr_getkind_np() и pthread_rwlockattr_setkind_np() впервые появились в glibc 2.1.

СТАНДАРТЫ

       Данные функции являются не стандартизированными расширениями GNU, о  чем  свидетельствует  суффикс  «_np»
       (nonportable).

СМ. ТАКЖЕ

       pthreads(7)

ПЕРЕВОД

       Русский перевод этой страницы руководства был сделан Alexey, Azamat Hackimov <azamat.hackimov@gmail.com>,
       kogamatranslator49    <r.podarov@yandex.ru>,    Kogan,   Max   Is   <ismax799@gmail.com>,   Yuri   Kozlov
       <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3
       или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное  письмо
       на man-pages-ru-talks@lists.sourceforge.net.

Linux man-pages 6.03                           30 октября 2022 г.               pthread_rwlockattr_setkind_np(3)