La clase EventBase

(PECL event >= 1.2.6-beta)

Introducción

La clase EventBase representa la estructura base de un evento libevent. Contiene un conjunto de eventos y puede verificar cuáles son los eventos activos.

Cada evento base tiene un método o un backend utilizado para determinar cuáles son los eventos listos. Estos métodos son : select, poll, epoll, kqueue, devpoll, evport y win32.

Para configurar un evento base a utilizar, o evitar un backend específico, la clase EventConfig puede ser utilizada.

Advertencia

No destruya el objeto EventBase hasta que los recursos asociados a los objetos Event no sean liberados. De lo contrario, esto llevará a resultados totalmente indefinidos.

Sinopsis de la Clase

final class EventBase {
/* Constantes */
const int LOOP_ONCE = 1;
const int LOOP_NONBLOCK = 2;
const int NOLOCK = 1;
const int STARTUP_IOCP = 4;
const int NO_CACHE_TIME = 8;
/* Métodos */
public __construct( EventConfig $cfg = ?)
public dispatch(): void
public exit( float $timeout = ?): bool
public free(): void
public getFeatures(): int
public getMethod(): string
public gotExit(): bool
public gotStop(): bool
public loop( int $flags = ?): bool
public priorityInit( int $n_priorities ): bool
public reInit(): bool
public stop(): bool
}

Constantes predefinidas

EventBase::LOOP_ONCE

Flag utilizado con el método EventBase::loop() que significa: "bloqueo mientras libevent tiene un evento activo, luego, salida una vez que todos los eventos activos han ejecutado sus funciones de retrollamada".

EventBase::LOOP_NONBLOCK

Flag utilizado con el método EventBase::loop() que significa: "no bloquear: ver qué eventos están listos actualmente, ejecutar sus funciones de retrollamada con una prioridad alta, luego, salir".

EventBase::NOLOCK

Flag de configuración. No bloquear la base del evento, incluso si un bloqueo había sido puesto en su lugar.

EventBase::STARTUP_IOCP

Flag de configuración específico de Windows. Activa el repartidor IOCP al inicio.

EventBase::NO_CACHE_TIME

Flag de configuración. En lugar de verificar el tiempo actual cada vez que el bucle de eventos está listo para ejecutar la función de retrollamada, el tiempo será verificado cada vez que el tiempo máximo de espera para la función de retrollamada sea alcanzado.

EventBase::EPOLL_USE_CHANGELIST

Si se utiliza el backend epoll, este flag significa que es seguro utilizar el código interno de modificación de lista interna a Libevent para agrupar los añadidos y las supresiones con el fin de intentar minimizar el número de llamadas al sistema.

El hecho de definir este flag hace que el código sea más rápido, pero puede enfrentarse a un bug de Linux: no es seguro utilizar este flag en presencia de fds clonados por dup() o una de sus variantes. Esto produciría un comportamiento extraño y muy difícil de diagnosticar.

Este flag también puede ser activado definiendo la variable de entorno EVENT_EPOLL_USE_CHANGELIST.

Este flag no tiene ningún efecto si se utiliza con un backend diferente a epoll.

Tabla de contenidos

add a note

User Contributed Notes

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