(PECL ev >= 0.2.0)
Les observateurs EvPrepare et EvCheck sont habituellement utilisés ensemble. L'observateur EvPrepare sera appelé avant les blocs du processus, alors que l'observateur EvCheck sera appelé après.
Il n'est pas autorisé d'appeler la méthode EvLoop::run() ou une méthode/fonction similaire qui entre dans la boucle de l'événement courante depuis soit l'observateur EvPrepare, soit l'observateur EvCheck. Toutefois, cela est possible pour toutes les autres boucles que la courante. La cause de cela est qu'il n'est pas nécessaire de vérifier la récursion dans ces observateurs, i.e. la séquence suivante sera toujours : EvPrepare -> blocage -> EvCheck, aussi, avoir un observateur pour chacun n'est pas utile, sachant qu'ils seront toujours appelés ensemble lors de l'appel au blocage.
Le but primaire est d'intégrer d'autres mécanismes d'événements dans la bibliothèque libev, avec une utilisation avancée. Ils peuvent être utilisés, par exemple, pour surveiller les modifications de variables, implémenter des observateurs personnalisés, intégrer net-snmp ou une bibliothèque supplémentaire, et bien plus encore. Ils peuvent être aussi utiles pour mettre en cache des données, et vouloir les afficher après le blocage.
Il est recommandé de fournir une priorité haute à EvCheck
(Ev::MAXPRI
) afin de s'assurer qu'il sera exécuté
avant tout autre observateur de la file (à contrario, peu importe pour
l'observateur EvPrepare).
De plus, les observateurs EvCheck ne doivent pas activer/alimenter des événements. Bien que libev supporte cela, ils peuvent être exécutés avant que les autres observateurs EvCheck ne terminent leur travaux.
$callback
,
string $data
= ?,
string $priority
= ?): object