pthread_mutexattr_init

PTHREAD_MUTEXATTR(3)       Manuel du programmeur Linux      PTHREAD_MUTEXATTR(3)



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 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 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és dans un programme portable.

       Le type de mutex détermine ce qui 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 type.

       pthread_mutexattr_gettype() récupère la valeur courante de l'attribut
       type de mutex dans attr et l'enregistre à l'emplacement pointé par type.

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_ERREURCHECK_NP

AUTEUR
       Xavier Leroy <Xavier DOT Leroy AT inria DOT fr>

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

TRADUCTION
       Ce document est une traduction réalisée par Thierry Vignaud <tvignaud AT
       mandriva DOT com> en 2000 et révisée le 19 novembre 2007.

       L'équipe de traduction a fait le maximum pour réaliser une adaptation
       française de qualité. La version anglaise la plus à jour de ce document
       est toujours consultable via la commande :
       « LANG=C man 3 pthread_mutexattr_init ».  N'hésitez pas à signaler à
       l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de
       manuel.



LinuxThreads                      6 avril 2002              PTHREAD_MUTEXATTR(3)