lock_done Kernel-Service

Zweck

Entsperrt eine komplexe Sperre.

Syntax

#include <sys/lock_def.h>
void lock_done ( lock_addr)
complex_lock_t lock_addr;

Parameter

Element Beschreibung
Sperrenadresse Gibt die Adresse des zu entsperrenden Sperrworts an

Beschreibung

Die 'lock_done' -Kernel-Services entsperren eine komplexe Sperre. Der aufrufende Kernel-Thread muss die Sperre entweder im Modus für gemeinsames Lesen oder im Modus für exklusives Schreiben halten. Wenn ein oder mehrere Kernel-Threads darauf warten, die Sperre im exklusiven Schreibmodus zu erhalten, wird einer dieser Kernel-Threads (der mit der höchsten Priorität) als ausführbar definiert und kann um die Sperre konkurrieren. Andernfalls werden alle Kernel-Threads, die darauf warten, die Sperre im Modus für gemeinsames Lesen zu erhalten, als ausführbar definiert. Wenn mindestens ein Kernel-Thread auf die Sperre wartet, wird die Priorität des aufrufenden Kernel-Threads neu berechnet.

Wenn die Sperre rekursiv gehalten wird, wird sie erst freigegeben, wenn der 'lock_done' -Kernel-Service einmal für jedes Mal aufgerufen wurde, wenn die Sperre gesperrt wurde.

Ausführungsumgebung

Der Kernel-Service 'lock_done' kann nur über Prozessumgebung aufgerufen werden.

Rückgabewerte

Der 'lock_done' -Kernel-Service hat keine Rückgabewerte.