Serviço Kernel e_sleep
Propósito
Força a thread de kernel de chamada a aguardar a ocorrência de um evento compartilhado.
Sintaxe
#include <sys/types.h> #include <sys/errno.h> #include <sys/sleep.h> int e_sleep ( palavra_do_evento, bandeiras) tid_t *palavra_do_evento; int bandeiras;
Parâmetros
| Item | Descrição |
|---|---|
| palavra_do_evento | Especifica a palavra de evento compartilhado. O kernel usa o parâmetro event_word para ancorar a lista de processos dormindo sobre este evento. O parâmetro event_word deve ser inicializado para EVENT_NULL antes de seu primeiro uso. |
| sinalizadores | Especifica as bandeiras que controlam a ação em ocorrência de sinais. Essas bandeiras podem ser encontradas no arquivo /usr/include/sys/sleep.h . O parâmetro bandeiras é usado para controlar como os sinais afetam a espera de um evento. As bandeiras a seguir estão disponíveis para o serviço e_sleep :
|
Descrição
O serviço kernel e_sleep é usado para esperar que o evento compartilhado especificado ocorra. O kernel coloca a thread do kernel atual na lista ancorada pelo parâmetro event_word . Esta lista é usada pelo serviço e_wakeup para acordar todas as threads esperando que o evento ocorra.
O âncora para a lista de eventos, o parâmetro event_word , deve ser inicializado para EVENT_NULL antes de seu primeiro uso. As extensões do kernel não devem alterar esta âncora enquanto ela está em uso.
O serviço e_wakeup não acorda um encadeamento que não está atualmente dormindo na função e_sleep . Ou seja, se uma operação e_wakeup para um evento for emitida antes do processo chamar o serviço e_sleep para o evento, o thread ainda dorme, aguardando no próximo serviço e_wakeup para o evento. Isto implica que as rotinas usando esta capacidade devem garantir que nenhuma janela de temporalidade exista em que eventos poderiam ser perdidos devido ao serviço e_wakeup ser chamado antes que a operação e_sleep para o evento tenha sido chamada.
Ambiente de Execução
O serviço kernel e_sleep pode ser chamado a partir do ambiente de processo apenas.
Valores De Retorno
| Item | Descrição |
|---|---|
| EVENTO_SUCC | Indica uma operação bem-sucedida. |
| EVENTO_SIG | Indica que a sinalização EVENT_SIGRET está configurada e a espera é finalizada por um sinal. |