pthread_mutex_consistent(3) | Library Functions Manual | pthread_mutex_consistent(3) |
NOM
pthread_mutex_consistent — Rendre un mutex robuste cohérent
BIBLIOTHÈQUE
Bibliothèque de threads POSIX (libpthread, -lpthread)
SYNOPSIS
#include <pthread.h>
int pthread_mutex_consistent(pthread_mutex_t *mutex);
pthread_mutex_consistent():
_POSIX_C_SOURCE >= 200809L
DESCRIPTION
Cette fonction rend un mutex robuste cohérent s'il est dans un état incohérent. Un mutex peut être laissé dans un état incohérent si son propriétaire se termine alors qu'il possède le mutex, auquel cas, le propriétaire suivant acquérant le mutex réussit et reçoit un code de retour de EOWNERDEAD d'un appel à pthread_mutex_lock().
VALEUR RENVOYÉE
En cas de réussite, pthread_mutex_consistent() renvoie 0 ; en cas d'erreur, la fonction renvoie un numéro d'erreur positif pour indiquer l'erreur.
ERREURS
- EINVAL
- Soit le mutex n'est pas robuste, soit il n'est pas dans un état incohérent.
STANDARDS
POSIX.1-2008.
HISTORIQUE
glibc 2.12. POSIX.1-2008.
Avant l'ajout de pthread_mutex_consistent() à POSIX, la glibc définissait la fonction équivalente non standard suivante si _GNU_SOURCE était défini :
[[obsolète]] int pthread_mutex_consistent_np(const pthread_mutex_t *mutex);
Cette API spécifique à GNU, apparue dans la glibc 2.4, est désormais obsolète et ne devrait pas être utilisée dans les nouveaux programmes ; depuis la glibc 2.34, elle a été marquée comme obsolète.
NOTES
pthread_mutex_consistent() informe simplement l'implémentation que l'état (données partagées) conservé par le mutex a été restauré dans un état cohérent et que les opérations normales peuvent désormais être exécutées avec le mutex. Il est de la responsabilité de l'application de s'assurer que les données partagées ont été restaurées dans un état cohérent avant d'appeler la fonction pthread_mutex_consistent().
EXEMPLES
Consultez pthread_mutexattr_setrobust(3).
VOIR AUSSI
pthread_mutex_lock(3), pthread_mutexattr_getrobust(3), pthread_mutexattr_init(3), pthread_mutexattr_setrobust(3), pthreads(7)
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 mai 2024 | Pages du manuel de Linux 6.8 |