(PECL ev >= 0.2.0)
Ev é uma classe estática que fornece acesso ao laço padrão e a algumas operações comuns.
Opções passadas para criar um laço:
Ev::FLAG_AUTO
Ev::FLAG_NOENV
libev
não irá olhar para a variável de ambiente
LIBEV_FLAGS.
Caso contrário (por padrão),
LIBEV_FLAGS
substituirá as opções completamente se for encontrado. Útil para
testes de desempenho e busca de bugs.
Ev::FLAG_FORKCHECK
getpid()
em cada iteração do laço e, portanto, isso pode desacelerar o
laço de eventos com muitas iterações de laço, mas geralmente não é
perceptível. Esta configuração de opção não pode ser substituída ou especificada na
variável de ambiente
LIBEV_FLAGS.
Ev::FLAG_NOINOTIFY
libev
não tentará usar a API
inotify
para seus observadores
» ev_stat.
A opção pode ser útil para conservar descritores de arquivo inotify,
caso contrário, cada laço usando observadores
ev_stat
consome um
identificador
inotify.
Ev::FLAG_SIGNALFD
libev
tentará usar a API
signalfd
para seus observadores
» ev_signal
(e
» ev_child).
Essa API fornece sinais de forma síncrona, o que a torna
mais rápida e pode possibilitar a obtenção dos dados do sinal enfileirados.
Também pode simplificar o tratamento de sinais com threads, desde que os sinais
sejam bloqueados adequadamente nos threads.
Signalfd
não será usado por padrão.
Ev::FLAG_NOSIGMASK
libev
evitará modificar a máscara do sinal. Especificamente, isso significa ter
certeza de que os sinais estão desbloqueados antes de recebê-los.
Esse comportamento é útil para manipulação de sinal personalizado ou manipulação
de sinais apenas em threads específicos.
Opções passadas para Ev::run() ou EvLoop::run()
Ev::RUN_NOWAIT
Ev::RUN_ONCE
Opção passada para Ev::stop() , ou EvLoop::stop()
Ev::BREAK_CANCEL
Ev::BREAK_ONE
Ev::BREAK_ALL
Prioridades do observador:
Ev::MINPRI
Ev::MAXPRI
Máscaras de bits de eventos (recebidos):
Ev::READ
Ev::WRITE
Ev::TIMER
Ev::PERIODIC
Ev::SIGNAL
Ev::CHILD
pid
especificado em
EvChild::__construct()
recebeu uma alteração de status.
Ev::STAT
Ev::IDLE
Ev::PREPARE
Ev::CHECK
Ev::EMBED
Ev::CUSTOM
libev,
mas pode ser usado livremente por usuários da
libev
para sinalizar observadores
(por exemplo, via
EvWatcher::feed()).
Ev::ERROR
libev
ficou sem memória, um descritor de arquivo foi fechado ou qualquer
outro problema.
Libev
considera esses bugs de aplicação. Veja também
» ANATOMIA
DE UM OBSERVADOR
Opções de backend:
Ev::BACKEND_SELECT
select(2) backend
Ev::BACKEND_POLL
poll(2) backend
Ev::BACKEND_EPOLL
epoll(7)
específico do Linux para kernels pré e pós-2.6.9
Ev::BACKEND_KQUEUE
kqueue
usado na maioria dos sistemas BSD.
O observador EvEmbed
pode ser usado para incorporar um laço (com backend kqueue) em
outro. Por exemplo, pode-se tentar criar um laço de eventos com backend
kqueue
e usá-lo apenas para soquetes.
Ev::BACKEND_DEVPOLL
Ev::BACKEND_PORT
Ev::BACKEND_ALL
Ev::BACKEND_ALL
& ~
Ev::BACKEND_KQUEUE).
Use
Ev::recommendedBackends()
ou não não especifique nenhum back-end.
Ev::BACKEND_MASK
flags
para mascarar quaisquer backends (por exemplo, ao modificar
a variável de ambiente
LIBEV_FLAGS).
Nota: Para o laço padrão durante a fase de inicialização do módulo,
Evregistra » ev_loop_fork chamada por meio depthread_atfork(se disponível).
Nota: Existem métodos que fornecem acesso ao laço de eventos padrão na classe Ev (por exemplo, Ev::iteration(), Ev::depth() etc.) Para laços personalizados (criados com EvLoop::__construct()) esses valores podem ser acessados através de propriedades e métodos correspondentes da classe EvLoop. A instância do laço de eventos padrão em si pode ser obtida por meio do método EvLoop::defaultLoop().