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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

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