Voltar à lista
Linux x86_64E/S assíncrona & eventos#232

epoll_wait

Aguarda eventos em uma instância epoll, retornando apenas os descritores com atividade.

Descrição

O coração do padrão de servidor orientado a eventos no Linux: bloqueia até que ao menos um descritor registrado tenha um evento de interesse, ou até o timeout.

Header: sys/epoll.hman 2

Assinatura

int epoll_wait(
    int epfd,
    struct epoll_event * events,
    int maxevents,
    int timeout
);

Parâmetros

ParâmetroTipoDescrição
epfdintDescritor da instância epoll.
eventsstruct epoll_event *Recebe os eventos ocorridos.
maxeventsintCapacidade do buffer `events`.
timeoutintTempo máximo de espera em milissegundos; -1 bloqueia indefinidamente.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1epfdint
rsiargumento 2eventsstruct epoll_event *
rdxargumento 3maxeventsint
r10argumento 4timeoutint

Valor de retorno

Número de descritores com eventos (0 em timeout) em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EBADF(9)
Descritor de arquivo inválido.
EFAULT(14)
Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).
EINTR(4)
Chamada interrompida por um sinal.
EINVAL(22)
Argumento inválido.

Relacionadas