.\" -*- coding: UTF-8 -*- .\" Copyright (c) 2017, Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH pthread_spin_init 3 "30 mars 2023" "Pages du manuel de Linux 6.05.01" .SH NOM pthread_attr_init, pthread_attr_destroy — Initialiser ou détruire un verrou tournant .SH BIBLIOTHÈQUE Bibliothèque de threads POSIX (\fIlibpthread\fP, \fI\-lpthread\fP) .SH SYNOPSIS .nf \fB#include \fP .PP \fBint pthread_spin_init(pthread_spinlock_t *\fP\fIlock\fP\fB, int \fP\fIpshared\fP\fB);\fP \fBint pthread_spin_destroy(pthread_spinlock_t *\fP\fIlock\fP\fB);\fP .fi .PP .RS -4 Exigences de macros de test de fonctionnalités pour la glibc (consulter \fBfeature_test_macros\fP(7))\ : .RE .PP \fBpthread_spin_init\fP(), \fBpthread_spin_destroy\fP()\ : .nf _POSIX_C_SOURCE >= 200112L .fi .SH DESCRIPTION \fIRemarque générale\fP\ : La plupart des programmes devraient utiliser des mutex à la place de verrous tournants. Les verrous tournants sont essentiellement utiles employés de manière conjointe avec des politiques d'ordonnancement en temps réel. Voir NOTES. .PP La fonction \fBpthread_spin_init\fP() alloue toutes les ressources nécessaires pour utiliser le verrou tournant auquel se réfère \fIlock\fP et initialise le verrou pour qu'il soit en état déverrouillé. L'argument \fIpshared\fP doit avoir une des valeurs suivantes\ : .TP \fBPTHREAD_PROCESS_PRIVATE\fP Le verrou tournant est destiné à être utilisé uniquement par des threads du même processus que celui du thread qui appelle \fBpthread_spin_init\fP(). (Essayer de partager le verrou entre processus résulte en un comportement indéfini.) .TP \fBPTHREAD_PROCESS_SHARED\fP Le verrou tournant peut être opéré par n'importe quel thread de n'importe quel processus qui a accès à la mémoire contenant le verrou (c'est\-à\-dire, le verrou peut être dans un objet mémoire partagé par de multiples processus). .PP Appeler \fBpthread_spin_init\fP() sur un verrou tournant qui a déjà été initialisé résulte en un comportement indéfini. .PP La fonction \fBpthread_spin_destroy\fP() détruit un verrou tournant précédemment initialisé, libérant toutes les ressources qui lui ont été attribuées. Détruire un verrou tournant qui n'a pas été précédemment initialisé ou un verrou alors qu'un autre thread le possède résulte en un comportement indéfini. .PP Une fois que le verrou tournant a été détruit, réaliser une opération sur le verrou autre que de l'initialiser à nouveau avec \fBpthread_spin_init\fP() résulte en un comportement indéfini. .PP Le résultat de la réalisation d'opérations telles que \fBpthread_spin_lock\fP(3), \fBpthread_spin_unlock\fP(3) et \fBpthread_spin_destroy\fP() sur des \fIcopies\fP de l'objet auquel se réfère \fIlock\fP est indéfini. .SH "VALEUR RENVOYÉE" En cas de réussite, ces fonctions renvoient \fB0\fP. En cas d'erreur, elles renvoient un numéro d'erreur. Si \fBpthread_spin_init\fP() échoue, le verrou n'est pas initialisé. .SH ERREURS .\" These errors don't occur on the glibc implementation \fBpthread_spin_init\fP() peut échouer avec les erreurs suivantes\ : .TP \fBEAGAIN\fP Le système n'a pas assez de ressources pour initialiser un nouveau verrou tournant. .TP \fBENOMEM\fP Mémoire insuffisante pour initialiser le verrou tournant. .SH STANDARDS POSIX.1\-2008. .SH HISTORIQUE glibc 2.2. POSIX.1\-2001. .PP La prise en charge de verrous tournants partagés par les processus est une option POSIX. Cette option est prise en charge dans l'implémentation de la glibc. .SH NOTES Les verrous tournants doivent être employés de manière conjointe avec des politiques d'ordonnancement en temps réel (\fBSCHED_FIFO\fP ou éventuellement \fBSCHED_RR\fP). L'utilisation de verrous tournants avec des politiques d'ordonnancement non déterministes tel que \fBSCHED_OTHER\fP est le signe probablement d'une erreur de conception. Le problème est que si un thread opérant avec une politique de ce type est ordonnancé hors processeur tandis qu'il possède un verrou tournant, alors les autres threads vont perdre leur temps en attente active du verrou jusqu'à ce que le propriétaire du verrou soit à nouveau réordonnancé et libère le verrou. .PP Si des threads créent une situation d'interblocage lors de l'utilisation de verrous tournants, ces threads se mettront en attente active pour toujours en consommant du temps de processeur. .PP .\" FIXME . When PTHREAD_MUTEX_ADAPTIVE_NP is one day document .\" make reference to it here Les verrous tournants de l'espace utilisateur \fIne sont pas\fP applicables comme une solution générale de verrouillage. Ils sont, par définition, sujets à des inversions de priorité et à des durées d'attente active illimitées. Un développeur utilisant des verrous tournants doit être particulièrement prudent non seulement sur le code, mais aussi en matière de configuration du système, de placement des threads et d'assignation de priorité. .SH "VOIR AUSSI" .ad l .nh \fBpthread_mutex_init\fP(3), \fBpthread_mutex_lock\fP(3), \fBpthread_spin_lock\fP(3), \fBpthread_spin_unlock\fP(3), \fBpthreads\fP(7) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Frédéric Hantrais et Jean-Pierre Giraud . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .