summaryrefslogtreecommitdiffstats
path: root/man3/pthread_rwlockattr_setkind_np.3
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-24 04:52:24 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-24 04:52:24 +0000
commit100d1b33f088fd38f69129afff7f9c2a1e084a57 (patch)
tree5bf6b0bb14f22ecf0a5e9439fdd4c4758402400c /man3/pthread_rwlockattr_setkind_np.3
parentReleasing progress-linux version 6.7-2~progress7.99u1. (diff)
downloadmanpages-100d1b33f088fd38f69129afff7f9c2a1e084a57.tar.xz
manpages-100d1b33f088fd38f69129afff7f9c2a1e084a57.zip
Merging upstream version 6.8.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man3/pthread_rwlockattr_setkind_np.3')
-rw-r--r--man3/pthread_rwlockattr_setkind_np.3119
1 files changed, 0 insertions, 119 deletions
diff --git a/man3/pthread_rwlockattr_setkind_np.3 b/man3/pthread_rwlockattr_setkind_np.3
deleted file mode 100644
index f2998ca..0000000
--- a/man3/pthread_rwlockattr_setkind_np.3
+++ /dev/null
@@ -1,119 +0,0 @@
-.\"Copyright (c) 2010 Novell Inc., written by Robert Schweikert
-.\"
-.\" SPDX-License-Identifier: Linux-man-pages-copyleft
-.\"
-.TH pthread_rwlockattr_setkind_np 3 2023-10-31 "Linux man-pages 6.7"
-.SH NAME
-pthread_rwlockattr_setkind_np, pthread_rwlockattr_getkind_np \- set/get
-the read-write lock kind of the thread read-write lock attribute object
-.SH LIBRARY
-POSIX threads library
-.RI ( libpthread ", " \-lpthread )
-.SH SYNOPSIS
-.nf
-.B #include <pthread.h>
-.P
-.BI "int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *" attr ,
-.BI " int " pref );
-.B int pthread_rwlockattr_getkind_np(
-.BI " const pthread_rwlockattr_t *restrict " attr ,
-.BI " int *restrict " pref );
-.P
-.fi
-.RS -4
-Feature Test Macro Requirements for glibc (see
-.BR feature_test_macros (7)):
-.RE
-.P
-.BR pthread_rwlockattr_setkind_np (),
-.BR pthread_rwlockattr_getkind_np ():
-.nf
- _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200809L
-.fi
-.SH DESCRIPTION
-The
-.BR pthread_rwlockattr_setkind_np ()
-function sets the "lock kind" attribute of the
-read-write lock attribute object referred to by
-.I attr
-to the value specified in
-.IR pref .
-The argument
-.I pref
-may be set to one of the following:
-.TP
-.B PTHREAD_RWLOCK_PREFER_READER_NP
-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
-.BR 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.
-.TP
-.B PTHREAD_RWLOCK_PREFER_WRITER_NP
-This is intended as the write lock analog of
-.BR 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
-.B PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
-which ensures the application developer will not take recursive
-read locks thus avoiding deadlocks.
-.\" ---
-.\" Here is the relevant wording:
-.\"
-.\" A thread may hold multiple concurrent read locks on rwlock (that is,
-.\" successfully call the pthread_rwlock_rdlock() function n times). If
-.\" so, the thread must perform matching unlocks (that is, it must call
-.\" the pthread_rwlock_unlock() function n times).
-.\"
-.\" By making write-priority work correctly, I broke the above requirement,
-.\" because I had no clue that recursive read locks are permissible.
-.\"
-.\" If a thread which holds a read lock tries to acquire another read lock,
-.\" and now one or more writers is waiting for a write lock, then the algorithm
-.\" will lead to an obvious deadlock. The reader will be suspended, waiting for
-.\" the writers to acquire and release the lock, and the writers will be
-.\" suspended waiting for every existing read lock to be released.
-.\" ---
-.\" https://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_rdlock.html
-.\" https://sourceware.org/legacy-ml/libc-alpha/2000-01/msg00055.html
-.\" https://sourceware.org/bugzilla/show_bug.cgi?id=7057
-.TP
-.B PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
-Setting the lock kind to this
-avoids writer starvation as long as any read locking is not done in a
-recursive fashion.
-.P
-The
-.BR pthread_rwlockattr_getkind_np ()
-function returns the value of the lock kind attribute of the
-read-write lock attribute object referred to by
-.I attr
-in the pointer
-.IR pref .
-.SH RETURN VALUE
-On success, these functions return 0.
-Given valid pointer arguments,
-.BR pthread_rwlockattr_getkind_np ()
-always succeeds.
-On error,
-.BR pthread_rwlockattr_setkind_np ()
-returns a nonzero error number.
-.SH ERRORS
-.TP
-.B EINVAL
-.I pref
-specifies an unsupported value.
-.SH STANDARDS
-GNU;
-hence the suffix "_np" (nonportable) in the names.
-.SH HISTORY
-glibc 2.1.
-.SH SEE ALSO
-.BR pthreads (7)