PTHREAD_MUTEXATTR(3)

NOM
pthread_mutexattr_init, pthread_mutexattr_destroy, pthread_mutexattr_settype, pthread_mutexattr_gettype — attibuts de création mutex

SYNOPSIS
#include <pthread.h>

int pthread_mutexattr_init(pthread_mutexattr_t *attr);

int pthread_mutexattr_destroy(pthread_mutexattr_t *attr);

int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type);

int pthread_mutexattr_gettype(const pthread_mutexattr_t *attr, int *type);

DESCRIPTION

Les attributs de création de mutex peuvent être spécifiés lors de leur création en les passant en tant que second argument à pthread_mutex_init(3). Passer une valeur NULL est équivalent à un objet attributs de mutex avec tous les attributs positionnés à leur valeur par défaut.

pthread_mutexattr_init initialise l'objet attributs de mutex attr et le remplit avec les valeurs d'attributs par défaut.

pthread_mutexattr_destroy() détruit un objet attributs de mutex qui ne doit plus jamais être utilisé à moins d'être réinitialisé. pthread_mutexattr_destroy() ne fait rien dans l'implémentation LinuxThreads.

LinuxThreads ne prend en charge qu'un attribut seul de mutex : le type de mutex qui peut être soit PTHREAD_MUTEX_FAST_NP pour les mutex « rapides », soit PTHREAD_MUTEX_RECURSIVE_NP pour les mutex « récursif\ », soit PTHREAD_MUTEX_ERRORCHECK_NP pour les mutex avec «\ vérification d'erreur». Comme le suffixe NP l'indique, ce sont des extensions non portables aux spécifications POSIX et elles ne devraient donc jamais être employées dans un programme portable.

Le type de mutex détermine ce qu'il se passe si un thread essaye de verrouiller un mutex déjà verrouillé par pthread_mutex_lock(3). Si le mutex est de type « rapide »; pthread_mutex_lock(3) suspend simplement le thread appelant. Si le mutex est de type avec « vérification d'erreur », pthread_mutex_lock(3) rend la main immédiatement avec le code d'erreur EDEADLK. Si le mutex est de type « récursif », l'appel à pthread_mutex_lock(3) rend la main immédiatement avec un code de retour de réussite. Le nombre de verrouillage par le thread possédant le mutex est enregistré dans le mutex. Le thread possédant le mutex doit appeler pthread_mutex_unlock(3) le même nombre de fois afin que le mutex passe à l'état déverrouillé.

Le type de mutex par défaut est « rapide », c'est-à-dire, PTHREAD_MUTEX_FAST_NP.

pthread_mutexattr_settype définit l'attribut de type de mutex dans attr à la valeur spécifiée par type.

pthread_mutexattr_gettype récupère la valeur actuelle de l'attribut de type de mutex dans attr et la stocke à l'emplacement pointé par type.

VALEUR RENVOYÉE
pthread_mutexattr_init, pthread_mutexattr_destroy and pthread_mutexattr_gettype renvoie toujours 0.

pthread_mutexattr_settype renvoie 0 en cas de réussite et un code d'erreur différent de zéro en cas d'erreur.

ERREURS

En cas d'erreur, pthread_mutexattr_settype renvoie le code d'erreur suivant :

EINVAL
    type n'est ni PTHREAD_MUTEX_FAST_NP, ni PTHREAD_MUTEX_RECURSIVE_NP, ni PTHREAD_MUTEX_ERRORCHECK_NP

AUTEUR
Xavier Leroy <Xavier.Leroy@inria.fr>

VOIR AUSSI
pthread_mutex_init(3), pthread_mutex_lock(3), pthread_mutex_unlock(3).

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