(PECL ev >= 0.2.0)
Представляет событийный цикл, который всегда отличается от цикла по умолчанию. В отличие от цикла по умолчанию, он не может работать с наблюдателями EvChild.
Если доступна работа с потоками исполнения, то необходимо создать цикл для каждого потока используя в качестве родителя цикл по умолчанию.
Событийный цикл по умолчанию инициализируется автоматически с попощью Ev. Он доступен с помощью методов класса Ev или с помощью метода EvLoop::defaultLoop().
$pid
,
string
$trace
,
string
$callback
[,
string
$data
[,
string
$priority
]] ) : EvChild$flags
[,
mixed
$data
= NULL
[,
float
$io_interval
= 0.0
[,
float
$timeout_interval
= 0.0
]]]] )$flags
= Ev::FLAG_AUTO
[,
mixed
$data
= NULL
[,
float
$io_interval
= 0.
[,
float
$timeout_interval
= 0.
]]]] ) : EvLoop$other
[,
string
$callback
[,
string
$data
[,
string
$priority
]]] ) : EvEmbed$fd
,
int
$events
,
callable
$callback
[,
mixed
$data
= NULL
[,
int
$priority
= 0
]] ) : EvIo$offset
,
float
$interval
,
callable
$callback
[,
mixed
$data
= NULL
[,
int
$priority
= 0
]] ) : EvPeriodic$callback
[,
mixed
$data
= NULL
[,
int
$priority
= 0
]] ) : EvPrepare$signum
,
callable
$callback
[,
mixed
$data
= NULL
[,
int
$priority
= 0
]] ) : EvSignal$path
,
float
$interval
,
callable
$callback
[,
mixed
$data
= NULL
[,
int
$priority
= 0
]] ) : EvStatПроизвольные данные, добавленные циклу
Только чтение. Флаги бэкенда указывающие какой событийный юэкенд используется.
Только чтение.
Если 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().