(PECL ev >= 0.2.0)
Ev::embeddableBackends — Devuelve el conjunto de backends que pueden ser encapsulados en otros bucles de eventos
Devuelve el conjunto de backends que pueden ser encapsulados en otros bucles de eventos.
Esta función no tiene parámetros.
Devuelve una máscara de octetos que puede contener los flags de backend combinados con el operador OR.
Ejemplo #1 Encapsula un bucle creado con el backend kqueue en el bucle por defecto
<?php
/*
* Verifica si kqueue está disponible y crea un backend kqueue
* para usarlo con sockets (que funciona habitualmente con cualquier
* implementación de kqueue).
* Almacena el bucle de eventos kqueue/solo-sockets en loop_socket.
* (uso opcional de EVFLAG_NOENV)
*
* Ejemplo tomado de:
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed = NULL;
if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
$embed = new EvEmbed($loop);
}
}
if (!$socket_loop) {
$socket_loop = $loop;
}
// Ahora, se utiliza $socket_loop para todos los sockets, y $loop para todo lo demás
?>