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 :
Lorsque le socket ou le descripteur de fichier est prêt pour la lecture.
Lorsque 5 secondes ont passé depuis la dernière activation de l'événement.