Sous-routine pthread_rwlock_unlock

Objectif

Déverrouille un objet verrou en lecture-écriture.

Bibliothèque

Bibliothèque d'unités d'exécution (libthreads.a)

Syntaxe

#include <pthread.h>

int pthread_rwlock_unlock (rwlock)
pthread_rwlock_t *rwlock;

Descriptif

La sous-routine pthread_rwlock_unlock est appelée pour libérer un verrou détenu sur l'objet verrou en lecture-écriture référencé par rwlock. Les résultats ne sont pas définis si le verrou en lecture-écriture rwlock n'est pas maintenu par l'unité d'exécution appelante.

Si cette sous-routine est appelée pour libérer un verrou en lecture de l'objet verrou en lecture-écriture et qu'il existe d'autres verrous en lecture actuellement détenus sur cet objet verrou en lecture-écriture, l'objet verrou en lecture-écriture reste à l'état verrouillé en lecture. Si cette sous-routine libère le dernier verrou en lecture de l'unité d'exécution appelante sur cet objet de verrou en lecture-écriture, l'unité d'exécution appelante n'est plus l'un des propriétaires de l'objet. Si cette sous-routine libère le dernier verrou en lecture pour cet objet verrou en lecture-écriture, l'objet verrou en lecture-écriture passe à l'état déverrouillé sans propriétaire.

Si cette sous-routine est appelée pour libérer un verrou en écriture pour cet objet de verrou en lecture-écriture, l'objet de verrou en lecture-écriture passe à l'état déverrouillé sans propriétaire.

Si l'appel de la sous-routine pthread_rwlock_unlock entraîne le déverrouillage de l'objet verrou en lecture-écriture et que plusieurs unités d'exécution attendent l'acquisition de l'objet verrou en lecture-écriture pour l'écriture, la règle de planification est utilisée pour déterminer quelle unité d'exécution acquiert l'objet verrou en lecture-écriture pour l'écriture. Si plusieurs unités d'exécution sont en attente d'acquisition de l'objet verrou en lecture-écriture pour la lecture, la règle de planification est utilisée pour déterminer l'ordre dans lequel les unités d'exécution en attente acquièrent l'objet verrou en lecture-écriture pour la lecture. Si plusieurs unités d'exécution sont bloquées sur rwlock à la fois pour les verrous en lecture et en écriture, il n'est pas précisé si les lecteurs acquièrent le verrou en premier ou si un programme d'écriture acquiert le verrou en premier.

Les résultats ne sont pas définis si l'une de ces sous-routines est appelée avec un verrou en lecture-écriture non initialisé.

Paramètres

Article Descriptif
rwlock Indique le verrou en lecture-écriture à déverrouiller.

Valeurs renvoyées

Si l'opération aboutit, la sous-routine pthread_rwlock_unlock renvoie zéro. Sinon, un numéro d'erreur est renvoyé pour indiquer l'erreur.

Codes d'erreur

La sous-routine pthread_rwlock_unlock peut échouer si:

Article Descriptif
EINVAL La valeur indiquée par rwlock ne fait pas référence à un objet verrou en lecture-écriture initialisé.
EPERM L'unité d'exécution en cours ne possède pas le verrou en lecture-écriture.