CascadiaPHP 2024

Sobre persistência de eventos

Por padrão, sempre que um evento pendente se torna ativo (porque seu descritor de arquivo está pronto para leitura ou gravação, ou porque seu tempo limite expira), ele se torna não pendente logo antes de seu retorno de chamada ser executado. Assim, para tornar o evento pendente novamente, pode-se chamar Event::add() nele novamente de dentro da função de retorno de chamada.

Se o sinalizador Event::PERSIST estiver definido em um evento, entretanto, o evento será persistente. Isso significa que o evento permanece pendente mesmo quando seu retorno de chamada é ativado. O método Event::del() pode ser chamado para torná-lo não pendente.

O tempo limite de um evento persistente é redefinido sempre que o retorno de chamada do evento é executado. Assim, se houver um evento com as opções Event::READ | Event::PERSIST e um timeout de cinco segundos, o evento se tornará ativo:

  1. Sempre que o socket ou descritor de arquivo estiver pronto para leitura.

  2. Sempre que cinco segundos se passaram desde a última vez que o evento ficou ativo.

Veja também » Programação de rede rápida e portátil sem bloqueio com Libevent, Sobre Persistência de Eventos

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top