(PECL ev >= 0.2.0)
La clase Ev es una clase estática que proporciona acceso al bucle por defecto así como a algunas operaciones comunes.
Flags pasados para crear un bucle:
Ev::FLAG_AUTO
Ev::FLAG_NOENV
libev
no va a mirar la variable de entorno
LIBEV_FLAGS. De lo contrario (comportamiento por defecto),
LIBEV_FLAGS va a sobrescribir completamente el
flag si se encuentra. Útil para pruebas de rendimiento
y para la búsqueda de bugs.
Ev::FLAG_FORKCHECK
getpid() en cada iteración de
la bucle, y así, va a ralentizar el bucle de eventos que
poseen muchas iteraciones, pero habitualmente,
este ralentizamiento no es notable. La configuración de este flag
no puede ser sobrescrita o especificada en la variable
de entorno LIBEV_FLAGS.
Ev::FLAG_NOINOTIFY
libev
no va a intentar utilizar la API inotify
para estos watchers
» ev_stat.
Este flag puede ser útil para conservar los descriptores de
ficheros inotify, sabiendo que de lo contrario, cada bucle utilizando los
watchers ev_stat va a consumir un manejador
inotify.
Ev::FLAG_SIGNALFD
libev
va a intentar utilizar la API signalfd
para estos watchers
» ev_signal
(y
» ev_child).
Esta API entrega las señales de forma asíncrona, lo que
la hace más rápida, y puede permitir la recuperación de datos
de señales en espera. También puede simplificar la gestión
de señales con hilos, sabiendo que las señales son propiedades bloqueadas
en los hilos. Signalfd
no será utilizado por defecto.
Ev::FLAG_NOSIGMASK
libev
no va a modificar la máscara de señal. Esto significa
que se debe asegurar que las señales están desbloqueadas
antes de recibirlas.
Este comportamiento es útil para la gestión personalizada de señales,
o la gestión de señales únicamente en hilos específicos.
Flags a pasar a Ev::run(), o a EvLoop::run()
Ev::RUN_NOWAIT
Ev::RUN_ONCE
Flags pasados a Ev::stop(), o a EvLoop::stop()
Ev::BREAK_CANCEL
Ev::BREAK_ONE
Ev::BREAK_ALL
Prioridades de Watcher:
Ev::MINPRI
Ev::MAXPRI
Máscaras de bytes de eventos (recibidos):
Ev::READ
Ev::WRITE
Ev::TIMER
Ev::PERIODIC
Ev::SIGNAL
Ev::CHILD
pid especificado en
EvChild::__construct()
ha recibido una modificación de estado.
Ev::STAT
Ev::IDLE
Ev::PREPARE
Ev::CHECK
Ev::EMBED
Ev::CUSTOM
libev, pero puede ser
libremente utilizado por los usuarios
libev para señalar los watchers
(i.e. vía el método EvWatcher::feed()).
Ev::ERROR
libev ha excedido la memoria asignada, un
descriptor de fichero ha sido cerrado, u otro problema.
Libev considera esto como bugs
de la aplicación. Ver también
» la anatomía
de un watcher
Flags de Backend:
Ev::BACKEND_SELECT
select(2) backend
Ev::BACKEND_POLL
poll(2) backend
Ev::BACKEND_EPOLL
epoll(7) específico de Linux
para, a la vez, los kernels antes y después de 2.6.9.
Ev::BACKEND_KQUEUE
kqueue utilizado en la
mayoría de los sistemas BSD. El watcher EvEmbed
puede ser utilizado para embeber un bucle (con el
backend kqueue) en otro. Actualmente, un bucle puede
intentar crear un bucle de eventos con el backend
kqueue y utilizarlo únicamente para los
sockets.
Ev::BACKEND_DEVPOLL
Ev::BACKEND_PORT
Ev::BACKEND_ALL
Ev::BACKEND_ALL & ~
Ev::BACKEND_KQUEUE).
Utilice el método
Ev::recommendedBackends() o no
especifique ningún backend.
Ev::BACKEND_MASK
flags para representar en una
máscara cualquier backend (i.e. al modificar
la variable de entorno LIBEV_FLAGS).
Nota: Para el bucle por defecto, durante la fase de inicialización del módulo,
Evregistra llamadas a » ev_loop_fork víapthread_atfork(si está disponible).
Nota: Hay métodos que proporcionan acceso a la bucle de eventos por defecto en la clase Ev (i.e. Ev::iteration(), Ev::depth(), etc.) Para los bucles personalizados (creados con EvLoop::__construct()), estos valores pueden ser accesibles vía las propiedades y los métodos correspondientes de la clase EvLoop. La instancia del bucle de eventos por defecto puede ser recuperada vía el método EvLoop::defaultLoop().