NOM¶
pthread_mutexattr_init, pthread_mutexattr_destroy, pthread_mutexattr_settype,
pthread_mutexattr_gettype - Attributs de création de 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 kind);
int pthread_mutexattr_gettype(const pthread_mutexattr_t *attr,
int *kind);
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 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 supporte seulement un seul attribut de mutex : le type de
mutex qui peut être soit
PTHREAD_MUTEX_FAST_NP pour des mutex
« rapides », soit
PTHREAD_MUTEX_RECURSIVE_NP pour
des mutex « récursifs », soit
PTHREAD_MUTEX_ERRORCHECK_NP pour des mutex avec
« vérification d'erreur ». Comme le suffixe
NP
l'indique, ce sont des extensions non portables aux spécifications POSIX
et 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() modifie l'attribut type_de_mutex dans
attr à la valeur spécifiée par
kind.
pthread_mutexattr_gettype() récupère la valeur courante de
l'attribut type de mutex dans
attr et l'enregistre à l'emplacement
pointé par
kind.
VALEUR RENVOYÉE¶
pthread_mutexattr_init(),
pthread_mutexattr_destroy() et
pthread_mutexattr_gettype() renvoient toujours 0.
pthread_mutexattr_settype() renvoie 0 en cas de succès et un code
d'erreur non nul 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¶
Cette page de manuel a été traduite par Thierry Vignaud <tvignaud
AT mandriva DOT com> en 2000 et révisée par Alain Portal
<aportal AT univ-montp2 DOT fr> en 2006. La version présente dans
Debian est maintenue par les membres de la liste <debian-l10n-french AT
lists DOT debian DOT org>. Veuillez signaler toute erreur de traduction par
un rapport de bogue sur le paquet manpages-fr-extra.