(PECL event >= 1.2.6-beta)
A classe EventBase representa a estrutura base de eventos do libevent. Ele contém um conjunto de eventos e pode pesquisar para determinar quais eventos estão ativos.
Cada base de eventos tem um
método,
ou um
back-end
que usa para determinar quais eventos estão prontos. Os métodos reconhecidos
são:
select
,
poll
,
epoll
,
kqueue
,
devpoll
,
evport
e
win32
.
Para configurar a base de eventos a ser usada ou evitar um back-end específico, a classe EventConfig pode ser usada.
NÃO
destrua o
objeto
EventBase
enquanto os recursos dos objetos
Event
associados não forem liberados. Caso contrário, isso levará a resultados
imprevisíveis!
EventBase::LOOP_ONCE
Opção usada com o método EventBase::loop() que significa: "bloquear até que libevent tenha um evento ativo e então sair quando todos os eventos ativos tiverem suas funções de retorno executadas".
EventBase::LOOP_NONBLOCK
Opção usada com o método EventBase::loop() que significa: "não bloquear: veja quais eventos estão prontos agora, execute as funções de retorno de maior prioridade e depois saia".
EventBase::NOLOCK
Opção de configuração. Não aloque um bloqueio para a base de eventos, mesmo que se tenha um bloqueio configurado".
EventBase::STARTUP_IOCP
Opção de configuração somente do Windows. Ativa o despachante IOCP na inicialização.
EventBase::NO_CACHE_TIME
Opção de configuração. Em vez de verificar o horário atual sempre que o laço de eventos estiver pronto para executar funções de retorno de tempo limite, verifica após cada função de retorno de tempo limite.
EventBase::EPOLL_USE_CHANGELIST
Se estivermos usando o
back-end epoll
,
este sinalizador diz que é seguro usar o código interno da lista de
alterações do Libevent para agrupar adições e exclusões, a fim de tentar fazer o
menor número possível de chamadas de sistema.
Definir esta opção pode tornar o código executado mais rápido, mas pode desencadear um problema do Linux: não é seguro usar este sinalizador se houver algum descritor de arquivo clonado por dup() ou suas variantes. Fazer isso produzirá problemas estranhos e difíceis de diagnosticar.
Esta opção também pode ser ativada configurando a
variável de ambiente
EVENT_EPOLL_USE_CHANGELIST
.
Esta opção não tem efeito se for usado um back-end
diferente de
epoll
.