A classe EventBase
(PECL event >= 1.2.6-beta)
Introdução
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
backend
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 backend 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, levará a resultados
imprevisíveis!
Resumo da classe
Constantes pré-definidas
-
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 seus retornos de chamada executados".
-
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 os retornos de chamada dos 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 tenhamos 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 a hora atual sempre que o loop de eventos estiver pronto para executar retornos de chamada de tempo limite, verifique após cada retorno de chamada de tempo limite.
-
EventBase::EPOLL_USE_CHANGELIST
-
Se estivermos usando o backend
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 syscalls.Definir esta opção pode tornar o código executado mais rápido, mas pode desencadear um bug do Linux: não é seguro usar este sinalizador se houver algum fds clonado por dup() ou suas variantes. Fazer isso produzirá bugs 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 alguém acabar usando um backend diferente de
epoll
.
Table of Contents
- EventBase::__construct — Constructs EventBase object
- EventBase::dispatch — Dispatch pending events
- EventBase::exit — Stop dispatching events
- EventBase::free — Free resources allocated for this event base
- EventBase::getFeatures — Returns bitmask of features supported
- EventBase::getMethod — Returns event method in use
- EventBase::getTimeOfDayCached — Returns the current event base time
- EventBase::gotExit — Checks if the event loop was told to exit
- EventBase::gotStop — Checks if the event loop was told to exit
- EventBase::loop — Dispatch pending events
- EventBase::priorityInit — Sets number of priorities per event base
- EventBase::reInit — Re-initialize event base(after a fork)
- EventBase::stop — Tells event_base to stop dispatching events