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

epoll_pwait2

Como epoll_pwait, mas aceita um timeout com resolução de nanossegundos (struct timespec) em vez de milissegundos.

Descrição

Alinha epoll_wait à precisão de timeout já disponível em ppoll/pselect6.

man 2Desde o kernel 5.11

Assinatura

int epoll_pwait2(
    int epfd,
    struct epoll_event * events,
    int maxevents,
    const struct timespec * timeout,
    const sigset_t * sigmask
);

Parâmetros

ParâmetroTipoDescrição
epfdintDescritor da instância epoll.
eventsstruct epoll_event *Recebe os eventos ocorridos.
maxeventsintCapacidade do buffer `events`.
timeoutconst struct timespec *Tempo máximo de espera, com resolução de nanossegundos; NULL bloqueia indefinidamente.
sigmaskconst sigset_t *Máscara de sinais a usar atomicamente durante a espera.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1epfdint
rsiargumento 2eventsstruct epoll_event *
rdxargumento 3maxeventsint
r10argumento 4timeoutconst struct timespec *
r8argumento 5sigmaskconst sigset_t *

Valor de retorno

Número de descritores com eventos 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