(PECL ev >= 0.2.0)
Os observadores EvPrepare e EvCheck são geralmente usados em pares. Os observadores EvPrepare são invocados antes do bloqueio do processo, EvCheck depois.
Não é permitido chamar EvLoop::run() ou métodos ou funções similares que entrem no loop de eventos atual dos observadores EvPrepare ou EvCheck. Outros loops além do atual são adequados, entretanto. A lógica por trás disso é que não é necessário verificar a recursão nesses observadores, ou seja, a sequência será sempre: EvPrepare -> bloqueando -> EvCheck, portanto, tendo um observador de cada tipo, eles sempre serão chamados em pares, colocando entre colchetes a chamada de bloqueio.
O objetivo principal é integrar outros mecanismos de eventos no libev e seu uso está um tanto avançado. Eles poderiam ser usados, por exemplo, para rastrear alterações de variáveis, implementar observadores personalizados, integrar net-snmp ou uma biblioteca de corrotinas e muito mais. Ocasionalmente, eles também são úteis para armazenar alguns dados em cache e deseja liberá-los antes de bloqueá-los.
É recomendado dar aos observadores
EvCheck
a prioridade mais alta (
Ev::MAXPRI
),
para garantir que eles estejam sendo executados antes de qualquer outro observador
após o poll (isso não importa para
observadores
EvPrepare).
Além disso, os observadores do EvCheck não devem ativar/alimentar eventos. Embora libev suporte totalmente isso, eles podem ser executados antes que outros observadores EvCheck façam seu trabalho.
$callback
,
string $data
= ?,
string $priority
= ?): object