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

eventfd

Cria um descritor de arquivo que funciona como um contador de eventos de 64 bits, utilizável para sinalização entre threads/processos.

Descrição

Mecanismo de notificação leve, muito usado para acordar um loop epoll a partir de outra thread (ex.: para sinalizar 'há trabalho pendente' ou implementar `eventfd`-based semaphores).

Header: sys/eventfd.hman 2Desde o kernel 2.6.22

Assinatura

int eventfd(unsigned int initval, int flags);

Parâmetros

ParâmetroTipoDescrição
initvalunsigned intValor inicial do contador.
flagsintNesta versão original, sem efeito — ver eventfd2 para EFD_CLOEXEC/EFD_NONBLOCK/EFD_SEMAPHORE.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1initvalunsigned int
rsiargumento 2flagsint

Valor de retorno

Um descritor eventfd em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EINVAL(22)
Argumento inválido.
EMFILE(24)
Limite de arquivos abertos do processo atingido.
ENODEV(19)
Dispositivo inexistente.
ENOMEM(12)
Memória insuficiente para completar a operação.

Relacionadas