array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'class.evloop.php', 1 => 'EvLoop', ), 'up' => array ( 0 => 'book.ev.php', 1 => 'Ev', ), 'prev' => array ( 0 => 'evio.set.php', 1 => 'EvIo::set', ), 'next' => array ( 0 => 'evloop.backend.php', 1 => 'EvLoop::backend', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/ev/evloop.xml', ), 'extra_header_links' => array ( 'rel' => 'alternate', 'href' => '/manual/en/feeds/class.evloop.atom', 'type' => 'application/atom+xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL ev >= 0.2.0)
Представляет событийный цикл, который всегда отличается от цикла по умолчанию. В отличие от цикла по умолчанию, он не может работать с наблюдателями EvChild.
Если доступна работа с потоками исполнения, то необходимо создать цикл для каждого потока используя в качестве родителя цикл по умолчанию.
Событийный цикл по умолчанию инициализируется автоматически с помощью Ev. Он доступен с помощью методов класса Ev или с помощью метода EvLoop::defaultLoop().
$flags
= ?,$data
= NULL
,$io_interval
= 0.0
,$timeout_interval
= 0.0
$pid
,$trace
,$callback
,$data
= ?,$priority
= ?$flags
= Ev::FLAG_AUTO
,$data
= NULL
,$io_interval
= 0.
,$timeout_interval
= 0.
$other
,$callback
= ?,$data
= ?,$priority
= ?$fd
,$events
,$callback
,$data
= null
,$priority
= 0
$offset
,$interval
,$callback
,$data
= null
,$priority
= 0
$signum
,$callback
,$data
= null
,$priority
= 0
$path
,$interval
,$callback
,$data
= null
,$priority
= 0
Произвольные данные, добавленные циклу
Только чтение. Флаги бэкенда указывающие какой событийный бэкенд используется.
Только чтение.
Если true
, то это цикл по умолчанию.
Текущий счётчик итераций. Смотри Ev::iteration()
Количество ожидающих наблюдателей.
0
означает, что
ожидающие наблюдатели отсутствуют.
Более высокие значения
io_interval
позволяют
libev
тратить больше времени для сбора событий
EvIo,
что позволит обработать больше событий за одну итерацию
заплатив за это увеличенными задержками.
Время ожидания (и EvPeriodic
и EvTimer) не будет затронуто.
Установка в ненулевое значение добавить дополнительный
вызов sleep()
в большинство итераций цикла.
Время сна гарантирует, что
libev
не будет передавать события
EvIo
чаще, чем один раз за этот период, в среднем.
Для большинства программ хорошим значением
io_interval
будет значение около
0.1
,
этого достаточно для большинства интерактивных серверов (не для игр).
Обычно вы не заметите никакой разницы, если установите его
меньше 0.01
, так как
это значение будет близко к минимальному интервалу вычисляемого
времени для большинства систем.
Также читайте » ФУНКЦИИ УПРАВЛЕНИЯ СОБЫТИЙНЫМИ ЦИКЛАМИ.
Более высокие значения timeout_interval позволят libev тратить больше времени для сбора превышенного времени ожидания за счёт увеличения задержек/джиттеров/неточностей (функция обратного вызова наблюдателя будет вызвана позже). Наблюдатели EvIo не будут затронуты. Увеличение этого значение не вызовет перерасхода ресурсов в libev. Также читайте » ФУНКЦИИ УПРАВЛЕНИЯ СОБЫТИЙНЫМИ ЦИКЛАМИ.
Глубина рекурсии. Смотрите Ev::depth().