pthread_spin_lock(3)

NOM
pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock — Verrouiller et déverrouiller un verrou tournant

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

SYNOPSIS
#include <pthread.h>

int pthread_spin_lock(pthread_spinlock_t *lock);
int pthread_spin_trylock(pthread_spinlock_t *lock);
int pthread_spin_unlock(pthread_spinlock_t *lock);

    Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

pthread_spin_lock(), pthread_spin_trylock() :
    _POSIX_C_SOURCE >= 200112L

DESCRIPTION
La fonction pthread_spin_lock() verrouille le verrou tournant auquel se réfère lock. Si le verrou tournant est actuellement déverrouillé, le thread appelant acquiert le verrou immédiatement. Si le verrou tournant est actuellement verrouillé par un autre thread, le thread appelant est en attente active, testant le verrou jusqu'à ce qu'il devienne disponible et, à ce moment là, le thread appelant acquiert le verrou.

Appeler pthread_attr_init() sur un verrou qui est déjà possédé par l'appelant ou sur un verrou qui n'a pas été initialisé avec pthread_spin_init(3) résulte en un comportement indéfini.

La fonction pthread_spin_trylock() est similaire à pthread_spin_lock(), sauf que si le verrou tournant auquel se réfère lock est actuellement verrouillé, alors, au lieu d'être en attente active, l'appel se termine immédiatement avec l'erreur EBUSY.

La fonction pthread_spin_unlock() déverrouille le verrou tournant auquel se réfère lock. Si des threads sont en attente active sur le verrou, un de ces threads acquiert le verrou.

Appeler pthread_spin_unlock() sur un verrou qui n'est pas possédé par l'appelant résulte en un comportement indéfini.

VALEUR RENVOYÉE
En cas de réussite, ces fonction renvoient 0. En cas d'erreur, elles renvoient un numéro d'erreur.

ERREURS
pthread_spin_lock() peut échouer avec les erreurs suivantes :

EDEADLOCK
    Le système a détecté une situation d'interblocage.

pthread_spin_trylock() peut échouer avec les erreurs suivantes :

EBUSY
    Le verrou tournant est actuellement verrouillé par un autre thread.

STANDARDS
POSIX.1-2008.

HISTORIQUE
glibc 2.2. POSIX.1-2001.

AVERTISSEMENTS
Appliquer une des fonctions décrites dans cette page à un verrou tournant non initialisé résulte en un comportement indéfini.

Lisez soigneusement les NOTES dans pthread_spin_init(3).

VOIR AUSSI
pthread_spin_destroy(3), pthread_spin_init(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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.