Service de noyau lock_read_to_write ou lock_try_read_to_write

Objectif

Met à niveau un verrou complexe du mode de lecture partagée en mode d'écriture exclusive.

Syntaxe

#include <sys/lock_def.h>
boolean_t lock_read_to_write ( lock_addr)
complex_lock_t lock_addr;
boolean_t lock_try_read_to_write ( lock_addr)
complex_lock_t lock_addr;

Paramètre

Article Descriptif
Add_verrou Indique l'adresse du mot de verrouillage à convertir du mode lecture-partagée en mode d'écriture exclusive.

Descriptif

Les services de noyau Lock_read_to_write et Lock_try_read_to_write tentent de mettre à niveau le verrou complexe spécifié du mode de lecture partagée en mode d'écriture exclusive. Le verrou a été mis à niveau avec succès si aucune autre unité d'exécution n'a déjà demandé l'accès en écriture exclusive pour ce verrou. Si le verrou ne peut pas être mis à niveau, il n'est plus détenu depuis le service de noyau Lock_read_to_write ; il est toujours détenu en mode lecture partagée à partir du service de noyau Lock_try_read_to_write .

L'unité d'exécution du noyau appelant doit contenir le verrou en mode lecture partagée.

Environnement d'exécution

Les services de noyau Lock_read_to_write et Lock_try_read_to_write peuvent être appelés à partir de Environnement de processus uniquement.

Valeurs renvoyées

Les éléments suivants s'appliquent uniquement à Lock_read_to_write:

Article Descriptif
vrai Indique que le verrou n'a pas été mis à niveau et n'est plus détenu.
FALSE Indique que le verrou a été mis à niveau avec succès en mode d'écriture exclusive.

Les éléments suivants s'appliquent uniquement à Lock_try_read_to_write:

Article Descriptif
vrai Indique que le verrou a été mis à niveau avec succès en mode d'écriture exclusive.
FALSE Indique que le verrou n'a pas été mis à niveau et est détenu en mode lecture.