pthread_rwlockattr_setkind_np(3) — Linux manual page


pthread_...etkind_np(3) Library Functions Manual pthread_...etkind_np(3)

NAME         top

       pthread_rwlockattr_setkind_np, pthread_rwlockattr_getkind_np -
       set/get the read-write lock kind of the thread read-write lock
       attribute object

LIBRARY         top

       POSIX threads library (libpthread, -lpthread)

SYNOPSIS         top

       #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);

   Feature Test Macro Requirements for glibc (see

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

DESCRIPTION         top

       The pthread_rwlockattr_setkind_np() function sets the "lock kind"
       attribute of the read-write lock attribute object referred to by
       attr to the value specified in pref.  The argument pref may be
       set to one of the following:

              This is the default.  A thread may hold multiple read
              locks; that is, read locks are recursive.  According to
              The Single Unix Specification, the behavior is unspecified
              when a reader tries to place a lock, and there is no write
              lock but writers are waiting.  Giving preference to the
              reader, as is set by PTHREAD_RWLOCK_PREFER_READER_NP,
              implies that the reader will receive the requested lock,
              even if a writer is waiting.  As long as there are
              readers, the writer will be starved.

              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;
              which ensures the application developer will not take
              recursive read locks thus avoiding deadlocks.

              Setting the lock kind to this avoids writer starvation as
              long as any read locking is not done in a recursive

       The pthread_rwlockattr_getkind_np() function returns the value of
       the lock kind attribute of the read-write lock attribute object
       referred to by attr in the pointer pref.

RETURN VALUE         top

       On success, these functions return 0.  Given valid pointer
       arguments, pthread_rwlockattr_getkind_np() always succeeds.  On
       error, pthread_rwlockattr_setkind_np() returns a nonzero error

ERRORS         top

       EINVAL pref specifies an unsupported value.

STANDARDS         top

       GNU; hence the suffix "_np" (nonportable) in the names.

HISTORY         top

       glibc 2.1.

SEE ALSO         top


COLOPHON         top

       This page is part of the man-pages (Linux kernel and C library
       user-space interface documentation) project.  Information about
       the project can be found at 
       ⟨⟩.  If you have a bug report
       for this manual page, see
       This page was obtained from the tarball man-pages-6.9.1.tar.gz
       fetched from
       ⟨⟩ on
       2024-06-26.  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-
       to-date source for the page, or you have corrections or
       improvements to the information in this COLOPHON (which is not
       part of the original manual page), send a mail to

Linux man-pages 6.9.1          2024-05-02        pthread_...etkind_np(3)

Pages that refer to this page: pthreads(7)