(PECL event >= 1.2.6-beta)
La classe EventBase représente la structure de base d'un événement libevent. Elle contient un jeu d'événements et peut vérifier quels sont les événements actifs.
Chaque événement de base a une méthode ou un
backend utilisé pour déterminer quels
sont les Ă©vĂ©nements prĂȘts. Ces mĂ©thodes sont :
select, poll, epoll,
kqueue, devpoll, evport
et win32.
Pour configurer un Ă©vĂ©nement de base Ă utiliser, ou Ă©viter un backend spĂ©cifique, la classe EventConfig peut ĂȘtre utilisĂ©e.
Ne détruisez pas l'objet EventBase
tant que les ressources associées aux objets Event
ne sont pas libérées. Sinon, cela mÚnera à des résultats totalement indéfinis !
EventBase::LOOP_ONCE
Drapeau utilisé avec la méthode EventBase::loop() qui signifie : "blocage tant que libevent a un événement actif, puis, sortie une fois que tous les événements actifs ont exécuté leurs fonctions de rappel".
EventBase::LOOP_NONBLOCK
Drapeau utilisĂ© avec la mĂ©thode EventBase::loop() qui signifie : "ne pas bloquer : regarde quels sont les Ă©vĂ©nements prĂȘts actuellement, exĂ©cute leurs fonctions de rappel avec une prioritĂ© haute, puis, on sort".
EventBase::NOLOCK
Drapeau de configuration. Ne pas verrouiller la base de l'Ă©vĂ©nement, mĂȘme si un verrouillage avait Ă©tĂ© mis en place.
EventBase::STARTUP_IOCP
Drapeau de configuration spécifique à Windows. Active le répartiteur IOCP au démarrage.
EventBase::NO_CACHE_TIME
Drapeau de configuration. Au lieu de vĂ©rifier le temps courant chaque fois que la boucle d'Ă©vĂ©nement est prĂȘte Ă exĂ©cuter la fonction de rappel, le temps sera vĂ©rifiĂ© Ă chaque fois que le dĂ©lai maximal d'attente pour la fonction de rappel sera atteint.
EventBase::EPOLL_USE_CHANGELIST
Si l'on utilise le backend epoll, ce drapeau
signifie qu'il est sécurisé d'utiliser le code interne de modification de liste
interne Ă Libevent pour mettre en lot les ajouts et les suppressions afin
de tenter de minimiser le plus possible le nombre d'appels systĂšme.
Le fait de définir ce drapeau rend le code plus rapide, mais il peut déclencher un bogue Linux : il n'est pas sécurisé d'utiliser ce drapeau en présence d'un fds cloné par dup() ou une de ces variantes. Ceci produirait un comportement étrange et trÚs difficile à diagnostiquer.
Ce drapeau peut aussi ĂȘtre activĂ© en dĂ©finissant la variable d'environnementEVENT_EPOLL_USE_CHANGELIST.
Ce drapeau n'a aucun effet si on l'utilise avec un autre backend que
epoll.