(PECL ev >= 0.2.0)
Ev es una clase estática que proporciona acceso al bucle por omsión y a algunas operaciones comunes.
Flags disponibles para crear un bucle:
Ev::FLAG_AUTO
      El valor del flag por defecto
Ev::FLAG_NOENV
      Si este flag es utilizado (o el programa corre setuid o setgid), libev no tendrá en cuenta la variable de entorno LIBEV_FLAGS . De otro modo (por defecto), LIBEV_FLAGS reemplazará los flags completamente si es definido. Útil para evaluación de performance y para encontrar errores.
Ev::FLAG_FORKCHECK
      Permite que libev verifique un fork en cada iteración, en lugar de llamar a EvLoop::fork() manualmente. Esto funciona al llamar a getpid() en cada iteración del bucle, y como tal podrá alentizar el bucle de eventos con numerosas iteraciones, aunque esto no es usualmente notorio. Este flag no puede ser reemplazado o especificado mediante la variable de entorno LIBEV_FLAGS.
Ev::FLAG_NOINOTIFY
      Cuando este flag es especificado, libev no intentará utilizar la API inotify para sus watchers » ev_stat. El flag puede ser útil para conservar los descriptores de archivo inotify, ya que de otro modo cada bucle que utilice watchers ev_stat consumen un handle inotify.
Ev::FLAG_SIGNALFD
      Cuando este flag es especificado, libev intentará utilizar la API signalfd para sus watchers » ev_signal (y » ev_child ). Esta API entrega las señales sincrónicamente, lo que la hace más rápida y puede permitir obtener los datos de señal encolados. También puede simplificar el manejo de señales mediante hilos, siempre y cuando las señales sean bloqueadas apropiadamente en los hilos. Signalfd no será utilizado por defecto.
Ev::FLAG_NOSIGMASK
      Cuando este flag es especificado, libev hará imposible la modificación de la máscara de señal. Esto significa que será necesario asegurarse que las señales están desbloqueadas antes de recibirlas.
Este comportamiento es útil para el manejo de señales personalizado, o para manipular señales solamente en hilos específicos.
Flags disponibles para Ev::run() , o EvLoop::run()
Ev::RUN_NOWAIT
      Significa que el bucle de eventos buscará nuevos eventos, y manejará aquellos eventos y cualquier otro evento pendiente, pero no esperará ni bloqueará el proceso en caso de que no haya eventos, retornando luego de una iteración del bucle. Esto es útil para obtener nuevos eventos mientras se realizan cálculos costosos, manteniendo el programa funcionando.
Ev::RUN_ONCE
      Significa que el bucle de eventos buscará nuevos eventos (esperando si es necesario) y manejará aquellos eventos, y cualquier otro evento pendiente. Bloqueará el proceso hasta que al menos un evento esté disponible (que podría ser un evento interno a libev, por lo que no hay garantía de que un callback registrado por el usuario sea llamado), y retornará luego de una iteración del bucle.
Flags disponibles para Ev::stop() , o EvLoop::stop()
Ev::BREAK_CANCEL
      Cancelar la operación break.
Ev::BREAK_ONE
      Hace que la llamada interior Ev::run() (o EvLoop::run() ) retorne.
Ev::BREAK_ALL
      Hace que todas las llamadas Ev::run() (o EvLoop::run() ) retornen.
Prioridades Watcher:
Ev::MINPRI
      Prioridad mínima disponible.
Ev::MAXPRI
      Prioridad máxima disponible.
Máscaras de Bit de los eventos (recibidos):
Ev::READ
      El descriptor de archivo en el watcher EvIo se ha vuelto disponible.
Ev::WRITE
      El descriptor de archivo en el watcher EvIo se ha vuelto modificable.
Ev::TIMER
      El watcher EvTimer ha agotado su tiempo.
Ev::PERIODIC
      El watcher EvPeriodic ha agotado su tiempo.
Ev::SIGNAL
      Una señal especificada en EvSignal::__construct() ha sido recibida.
Ev::CHILD
      
        El
        pid
        especificado en
        EvChild::__construct()
        ha recibido una alteración de estado.
       
Ev::STAT
      El path especificado en el watcher EvStat ha modificado sus atributos.
Ev::IDLE
      El watcher EvIdle trabaja cuando no hay nada que hacer con otros watchers.
Ev::PREPARE
      Todos los watchers EvPrepare son invocados justo antes de que Ev::run() comience. Así, los watchers EvPrepare son los últimos en ser invocados antes de que el bucle de eventos duerma, o busque nuevos eventos.
Ev::CHECK
      Todos los watchers EvCheck son encolados justo luego de que Ev::run() haya obtenido los nuevos eventos, pero antes de que encole cualquier callback para los eventos recibidos. Así, los watchers EvCheck serán invocados antes que cualquier otro watcher de la misma o menor prioridad dentro de la iteración del bucle de eventos.
Ev::EMBED
      El bucle embebido especificado en el watcher EvEmbed necesita atención.
Ev::CUSTOM
      Nunca enviado (o utilizado) por libev, pero puede ser libremente utilizado por los usuarios de libev para enviar señales a watchers (por ejemplo a través de EvWatcher::feed() ).
Ev::ERROR
      Un error no especificado ha ocurrido, y el watcher se ha detenido. Esto puede ocurrir ya sea porque el watcher no haya sido inicializado apropiadamente debido a que libev ha agotado la memoria disponible, porque un descriptor de archivo se encontraba ya cerrado, o por cualquier otro problema. Libev considera estos errores como errores de aplicación. Véase también » ANATOMY OF A WATCHER
Flags de Backend:
Ev::BACKEND_SELECT
      Backend select(2)
Ev::BACKEND_POLL
      Backend poll(2)
Ev::BACKEND_EPOLL
      Backend específico a Linux epoll(7) tanto para kernels anteriores o posteriores a la versión 2.6.9
Ev::BACKEND_KQUEUE
      Backend kqueue utilizado en la mayoría de los sistemas BSD. El watcher EvEmbed puede ser utilizado para embeber un bucle (con e backend kqueue ) dentro de otro. Por ejemplo, uno puede intentar crear un bucle de eventos con el backend kqueue y utilizarlo solamente por sus sockets.
Ev::BACKEND_DEVPOLL
      Backend Solaris 8. Aún no implementado.
Ev::BACKEND_PORT
      Mecanismo de puerto Solaris 10 con buena escalabilidad.
Ev::BACKEND_ALL
      
        Intentar todos los backends (incluso los corrompidos). No es
        recomendado utilizar este flag explícitamente. En su lugar deberían
        utilizarse operaciones Bitwise (por ejemplo
        Ev::BACKEND_ALL
        & ~
        Ev::BACKEND_KQUEUE
        ). Utiliza
        Ev::recommendedBackends()
        , o no especifiques ningún backend en especial.
       
Ev::BACKEND_MASK
      
        No es un backend, sino una máscara que permite seleccionar todos
        los bits de backends desde el valor 
        flags
        para sacar de la máscara cualquier backend (por ejemplo cuando se modifica
        la variable de entorno
        LIBEV_FLAGS
        ).
       
Nota:
Durante la fase de inicialización del módulo, Ev registtra para el bucle por defecto una llamada a » ev_loop_fork a través de pthread_atfork (si se encuentra disponible).
Nota:
Existen métodos que ofrecen acceso al bucle de eventos por defecto en la clase Ev (por ejemplo Ev::iteration() , Ev::depth() etc.) Para bucles personalizados (creados con EvLoop::__construct() ) estos valores pueden ser accedidos a través de propiedades y métodos correspondientes de la clase EvLoop .
La instancia del bucle de eventos por defecto puede ser obtenida a través del método EvLoop::defaultLoop() .