array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'ev.supportedbackends.php', 1 => 'Ev::supportedBackends', ), 'up' => array ( 0 => 'class.ev.php', 1 => 'Ev', ), 'prev' => array ( 0 => 'ev.stop.php', 1 => 'Ev::stop', ), 'next' => array ( 0 => 'ev.suspend.php', 1 => 'Ev::suspend', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/ev/ev/supportedbackends.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL ev >= 0.2.0)
Ev::supportedBackends — Возвращает набор бэкендов, поддерживаемых текущей конфигурацией libev
Возвращает набор бэкендов, поддерживаемых текущей конфигурацией libev.
У этой функции нет параметров.
Возвращает битовую маску, содержащую флаги бэкенда, объединённые с помощью побитового ИЛИ.
Пример #1 Цикл создаётся с использованием kqueue и встраивается в цикл по умолчанию
<?php
/*
* Проверяем, что kqueue доступен, но не рекомендован и создаём kqueue бэкенд
* с использованием сокетов (которые обычно работают с любой реализацией kqueue).
* Сохраняем событийный цикл kqueue/socket-only в loop_socket. (Можем, опционально
* использовать флаг EVFLAG_NOENV)
*
* Пример взят с сайта
* 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;
}
// Теперь используем $socket_loop для всех сокетов и $loop всего остального
?>