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 :
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.
Voir aussi
la programmation réseau rapide, portable et non-bloquante avec Libevent ;
A propos des événements persistents