Event
PHP Manual

A propos de la persistence des événements

Par défaut, dès qu'un événement en attente devient actif (car son descripteur de fichier est prêt à être lu ou écrit, ou parce que son délai d'attente maximal est atteint), il n'est plus en attente dès lors que sa fonction de rappel est exécutée. Aussi, pour rendre de nouveau l'événement en attente, une façon est d'appeler la méthode Event::add() dans la fonction de rappel.

Si le drapeau Event::PERSIST est défini sur l'événement, alors il est persistent. Cela signifie que l'événement reste en attente y compris lorsque sa fonction de rappel est activée. La méthode Event::del() peut être appelé pour le passer en non-attente.

Le délai maximal d'attente sur un événement persistent est réinitialisé dès lors que sa fonction de rappel est exécutée. Aussi, si un événement a comme drapeaux Event::READ | Event::PERSIST et un délai d'attente fixé à 5 secondes, l'événement devient actif :

  1. Lorsque le socket ou le descripteur de fichier est prêt pour la lecture.

  2. Lorsque 5 secondes ont passé depuis la dernière activation de l'événement.

Voir aussi »  la programmation réseau rapide, portable et non-bloquante avec Libevent ; A propos des événements persistents


Event
PHP Manual