Scroll to navigation

PTHREAD_RWLOCKATTR_SETKIND_NP(3) Library Functions Manual PTHREAD_RWLOCKATTR_SETKIND_NP(3)

NOM

pthread_rwlockattr_setkind_np, pthread_rwlockattr_getkind_np — Définir ou obtenir le type de verrou en lecture/écriture de l'objet d'attribut verrou de thread

SYNOPSIS

#include <pthread.h>
int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *attr,
                                   int pref);
int pthread_rwlockattr_getkind_np(const pthread_rwlockattr_t *attr,
                                   int *pref);
Compiler et éditer les liens avec -pthread.


Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

pthread_rwlockattr_setkind_np(), pthread_rwlockattr_getkind_np() :

_XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200809L

DESCRIPTION

La fonction pthread_rwlockattr_setkind_np() définit, à la valeur indiquée par pref, l'attribut « lock kind » de l'objet d'attribut de thread verrou en lecture/écriture auquel attr fait référence. L'argument pref peut être défini à une des valeurs suivantes :

C'est l'option par défaut. Un thread peut posséder plusieurs verrous en lecture ; c'est-à-dire que les verrous en écriture sont récursifs. Selon la Single UNIX Specification, il y a un comportement non spécifié quand un lecteur essaye de placer un verrou et qu'il n'y a pas de verrou en écriture, mais que des écrivains sont en attente. Donner la préférence au lecteur, tel que défini par PTHREAD_RWLOCK_PREFER_READER_NP, implique que le lecteur recevra le verrou requis, même si un écrivain est en attente. Tant qu'il y a des lecteurs, l'écrivain ne sera pas alimenté.
Cette option est censée être l'équivalent du verrou en écriture de PTHREAD_RWLOCK_PREFER_READER_NP. Mais consultez la section BOGUES.
Définir le type de verrou à cette valeur évite que l'écrivain ne soit pas alimenté aussi longtemps qu'un verrouillage en lecture n'est pas fait de façon récursive.

Les fonctions pthread_rwlockattr_getkind_np() renvoient dans le pointeur pref la valeur de l'attribut de type de verrou de l'objet d'attribut verrou en lecture/écriture auquel attr fait référence.

VALEUR RENVOYÉE

En cas de succès, ces fonctions renvoient 0. Si des arguments pointeur valables sont fournis, pthread_rwlockattr_getkind_np() réussit toujours. En cas d'erreur, pthread_rwlockattr_setkind_np() renvoie un code d'erreur différent de zéro.

ERREURS

pref spécifie une valeur non admise.

VERSIONS

Les fonctions pthread_rwlockattr_getkind_np() et pthread_rwlockattr_setkind_np() sont apparues dans la glibc 2.1.

CONFORMITÉ

Ces fonctions sont des extensions non standard GNU ; d'où le suffixe « _np » (non portable) dans leur nom.

BOGUES

Définir la valeur du type de verrou en lecture/écriture à PTHREAD_RWLOCK_PREFER_WRITER_NP aboutit au même comportement que de régler la valeur à PTHREAD_RWLOCK_PREFER_READER_NP. Tant qu'un thread lecteur possède le verrou, le thread possédant un verrou en écriture ne sera pas alimenté. Définir le type de verrou à PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP permet aux écrivains d'être exécutés, mais comme le nom l'indique, un écrivain ne peut pas poser de verrou de façon récursive.

VOIR AUSSI

pthreads(7)

COLOPHON

Cette page fait partie de la publication 4.16 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Frédéric Hantrais <fhantrais@gmail.com> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

2 février 2018 Manuel du programmeur Linux