Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

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

БИБЛИОТЕКА

       Библиотека потоков POSIX (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.

СТАНДАРТЫ

       GNU, о чём свидетельствует наличие суффикса «_np» (nonportable) в именах.

ИСТОРИЯ

       glibc 2.1.

СМОТРИТЕ ТАКЖЕ

       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  или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

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

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                 pthread_rwlockattr_setkind_np(3)