pthread_mutex_consistent(3) Library Functions Manual pthread_mutex_consistent(3)

pthread_mutex_consistent — Rendre un mutex robuste cohérent

Bibliothèque de threads POSIX (libpthread, -lpthread)

#include <pthread.h>
int pthread_mutex_consistent(pthread_mutex_t *mutex);
Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

pthread_mutex_consistent():

    _POSIX_C_SOURCE >= 200809L

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().

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.

Soit le mutex n'est pas robuste, soit il n'est pas dans un état incohérent.

POSIX.1-2008.

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.

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().

Consultez pthread_mutexattr_setrobust(3).

pthread_mutex_lock(3), pthread_mutexattr_getrobust(3), pthread_mutexattr_init(3), pthread_mutexattr_setrobust(3), pthreads(7)

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.

31 octobre 2023 Pages du manuel de Linux 6.06