SunshinePHP Developer Conference 2015

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

add a note add a note

User Contributed Notes

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