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 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.

Aviso

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!

Resumo da classe

final class EventBase {
/* Constantes */
const int LOOP_ONCE = 1;
const int LOOP_NONBLOCK = 2;
const int NOLOCK = 1;
const int STARTUP_IOCP = 4;
const int NO_CACHE_TIME = 8;
/* Métodos */
public __construct( EventConfig $cfg = ?)
public dispatch(): void
public exit( float $timeout = ?): bool
public free(): void
public getFeatures(): int
public getMethod(): string
public gotExit(): bool
public gotStop(): bool
public loop( int $flags = ?): bool
public priorityInit( int $n_priorities ): bool
public reInit(): bool
public stop(): bool
}

Constantes predefinidas

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.

Índice

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top