e_wakeup, e_wakeup_one oder e_wakeup_w_result Kernel-Service
Zweck
Benachrichtigt Kernel-Threads, die auf ein gemeinsam genutztes Ereignis warten, über das Vorkommen des Ereignisses.
Syntax
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/sleep.h> tid_t *event_word;
tid_t *event_word;
Parameter
| Element | Beschreibung |
|---|---|
| Ereigniswort | Gibt den gemeinsam genutzten Ereignisbezeichner an Der Kernel verwendet den Parameter Ereigniswort als Anker für die Liste der Threads, die auf dieses gemeinsam genutzte Ereignis warten. |
| Ergebnis | Gibt den Wert an, der an den erwachten Kernel-Thread zurückgegeben wird. Die folgenden Werte können verwendet werden:
|
Beschreibung
Die Kernel-Services E_Wakeup und e_wakeup_w_ergebnis aktivieren alle Kernel-Threads, die in der Ereignisliste im Ruhemodus sind, die durch den Parameter Ereigniswort verankert ist. Der e_wakeup_one -Kernel-Service aktiviert nur den am meisten bevorzugten Thread, der in der durch den Parameter Ereigniswort verankerten Ereignisliste in den Ruhemodus versetzt wird.
Wenn Threads aktiviert werden, kehren sie von einem Aufruf an den Kernel-Service Blockthread oder _Sleep_Thread zurück. Der Rückgabewert hängt von dem Kernel-Service ab, der aufgerufen wird, um die Threads zu aktivieren (den Aktivierungskernel-Service):
- THREAD_ERWACHT wird zurückgegeben, wenn der Kernel-Service E_Wakeup oder e_wakeup_one aufgerufen wird.
- Der Wert des Parameters Ergebnis wird zurückgegeben, wenn der e_wakeup_w_ergebnis -Kernelservice aufgerufen wird.
Wenn ein Signal an einen Thread übergeben wird, der von einem der Aktivierungskernel-Services aktiviert wird, und wenn der Thread das Flag UNTERBRECHBAR angegeben hat, hat die Signalbereitstellung Vorrang. Der Thread wird unabhängig vom aufgerufenen Aktivierungskernel-Service mit dem Rückgabewert THREAD_UNTERBROCHENaktiviert.
Die Kernel-Services E_Wakeup und e_wakeup_w_ergebnis setzen den Parameter Ereigniswort auf EREIGNIS_NULL.
Die Kernel-Services E_Wakeup, e_wakeup_oneund e_wakeup_w_ergebnis haben keine Rückgabewerte.
Ausführungsumgebung
Die Kernel-Services E_Wakeup, e_wakeup_oneund e_wakeup_w_ergebnis können entweder aus der Prozess -Umgebung oder aus der Unterbrechung -Umgebung aufgerufen werden.
Wenn der Parameter Ereigniswort von einem Interrupt-Handler aufgerufen wird, muss er sich im fixierten Speicher befinden.