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

epoll_pwait

Como epoll_wait, mas substitui atomicamente a máscara de sinais durante a espera.

Descrição

Análoga de `epoll_wait` para `pselect6`/`ppoll`.

man 2Desde o kernel 2.6.19

Assinatura

int epoll_pwait(
    int epfd,
    struct epoll_event * events,
    int maxevents,
    int 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`.
timeoutintTempo máximo de espera em milissegundos.
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 4timeoutint
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