Service de noyau e_sleep
Objectif
Force l'unité d'exécution du noyau appelant à attendre l'occurrence d'un événement partagé.
Syntaxe
#include <sys/types.h> #include <sys/errno.h> #include <sys/sleep.h> int e_sleep ( mot _événement, indicateurs) tid_t *mot _événement; int indicateurs;
Paramètres
| Article | Descriptif |
|---|---|
| Mot-événement | Indique le mot d'événement partagé. Le noyau utilise le paramètre Mot-événement pour ancrer la liste des processus qui dorment sur cet événement. Le paramètre Mot-événement doit être initialisé sur EVENT_NULL avant sa première utilisation. |
| Flags | Indique les indicateurs qui contrôlent l'action sur l'occurrence des signaux. Ces indicateurs sont disponibles dans le fichier /usr/include/sys/sleep.h . Le paramètre Indicateurs est utilisé pour contrôler la façon dont les signaux affectent l'attente d'un événement. Les indicateurs suivants sont disponibles pour le service _sommeil :
|
Descriptif
Le service de noyau _sommeil est utilisé pour attendre que l'événement partagé spécifié se produise. Le noyau place l'unité d'exécution de noyau en cours sur la liste ancrée par le paramètre Mot-événement . Cette liste est utilisée par le service _wakeup pour réveiller toutes les unités d'exécution en attente de l'événement.
L'ancrage de la liste d'événements, le paramètre Mot-événement , doit être initialisé sur EVENT_NULL avant sa première utilisation. Les extensions de noyau ne doivent pas modifier cette ancre pendant qu'elle est en cours d'utilisation.
Le service _wakeup ne réveille pas une unité d'exécution qui n'est pas en train de dormir dans la fonction _sommeil . En d'autres cas, si une opération _wakeup pour un événement est émise avant que le processus appelle le service _sommeil pour l'événement, l'unité d'exécution dort encore, en attente sur le service _wakeup suivant pour l'événement. Cela implique que les routines utilisant cette fonction doivent s'assurer qu'aucune fenêtre de synchronisation n'existe dans laquelle les événements peuvent être manqués en raison du service _wakeup appelé avant que l'opération _sommeil pour l'événement n'ait été appelée.
Environnement d'exécution
Le service de noyau _sommeil peut être appelé à partir de Environnement de processus uniquement.
Valeurs renvoyées
| Article | Descriptif |
|---|---|
| EVENT_SUCC | Indique une opération réussie. |
| SIG | Indique que l'indicateur EVENT_SIGRET est défini et que l'attente est arrêtée par un signal. |