Service de noyau lock_set_recursive

Objectif

Prépare un verrou complexe pour une utilisation récursive.

Syntaxe

#include <sys/lock_def.h>

void lock_set_recursive (lock_addr)
complex_lock_t lock_addr;

Paramètre

Tableau 1. Paramètre
Article Descriptif
Add_verrou Indique l'adresse du mot de verrouillage à préparer pour une utilisation récursive.

Descriptif

Lelock_set_recursive Le service noyau prépare le verrou complexe spécifié pour une utilisation récursive. Un verrou complexe ne peut pas être imbriqué tant que lelock_set_recursive le service du noyau est nécessaire pour cela. L'unité d'exécution du noyau appelant doit contenir le verrou complexe spécifié en mode d'écriture exclusive.

Lorsqu'un verrou complexe est utilisé de manière récursive, lelock_done Le service du noyau doit être appelé une fois à chaque fois que le thread est verrouillé afin de déverrouiller le verrou.

Seul le thread du noyau, qui appelle lelock_set_recursive Le service du noyau pour un verrou peut acquérir ce verrou de manière récursive.

Note: Lelock_set_recursive etlock_clear_recursive les services du noyau doivent être utilisés par paires et doivent être appelés uniquement lorsqu'une récursion est susceptible de se produire. Lelock_set_recursive Le service noyau doit être appelé après avoir effectué un appel aulock_write service du noyau et lelock_clear_recursive Le service du noyau doit être appelé avant d'appeler lelock_done service du noyau dans les routines où la récursion peut se produire dans la pile d'appels.

Environnement d'exécution

Lelock_set_recursive le service du noyau peut être appelé depuis environnement de processus seulement.

Valeurs renvoyées

Lelock_set_recursive le service du noyau n'a aucune valeur de retour.