uexclear-Kernel-Service

Zweck

Macht einen durch den uexblock-Dienst blockierten Kernel-Thread wieder lauffähig.

Syntax

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/except.h>
void uexclear ( tid)
tid_t *tid;

Parameter

Element Beschreibung
TID Gibt die Thread-ID des zuvor geblockten Kernel-Threads an, der ausgeführt werden soll.

Beschreibung

Der Kernel-Dienst uexclear versetzt einen durch den Parameter tid spezifizierten Kernel-Thread wieder in einen lauffähigen Zustand, nachdem er durch den Kernel-Dienst uexblock nicht lauffähig gemacht wurde. Ein Thread, der ein SIGSTOP-Stoppsignal erhalten hat, wird wieder lauffähig gemacht, wenn er das SIGCONT-Fortsetzungssignal erhält.

Der Kernel-Dienst uexclear kann verwendet werden, um den Zugriff des Benutzermodus-Threads auf eine gemeinsam genutzte, seriell nutzbare Ressource zu kontrollieren (lazily control). Eine seriell verwendete Ressource kann von mehr als einem Thread verwendet werden, aber nur von jeweils einem. Wenn ein Thread versucht, auf die Ressource zuzugreifen, aber keinen Zugriff hat, kann eine Ausnahme im Benutzermodus ausgelöst werden.

Mit dieser Einstellung wird die Kontrolle an einen vom uexadd-Kernel-Dienst registrierten Exception-Handler übergeben. Mit Hilfe des Kernel-Dienstes uexblock kann dieser Exception-Handler dann den Thread blockieren, bis die Ressource zu einem späteren Zeitpunkt wieder verfügbar ist. Zu diesem Zeitpunkt kann der Dienst uexclear verwendet werden, um den blockierten Thread wieder lauffähig zu machen.

Ausführungsumgebung

Der Kernel-Dienst uexclear kann entweder aus der Prozess- oder der Interrupt-Umgebung aufgerufen werden.

Rückgabewerte

Der Dienst uexclear hat keine Rückgabewerte.