Класс EvLoop
(PECL ev >= 0.2.0)
Введение
Представляет событийный цикл, который всегда отличается
от цикла по умолчанию.
В отличие от цикла по умолчанию,
он не может работать с наблюдателями
EvChild .
Если доступна работа с потоками исполнения, то необходимо
создать цикл для каждого потока используя в качестве родителя
цикл по умолчанию.
Событийный цикл по умолчанию
инициализируется автоматически с помощью
Ev.
Он доступен через методы класса
Ev или через метод
EvLoop::defaultLoop() .
Обзор класса
final
class EvLoop
{
/* Свойства */
/* Методы */
}
Свойства
-
data
-
Произвольные данные, которые добавили циклу
-
backend
-
Только чтение.
Флаги бэкенда,
которые указывают, какой событийный бэкенд используется.
-
is_default_loop
-
Только чтение.
Если установили значение
true , то это цикл по умолчанию.
-
iteration
-
Текущий счётчик итераций. Смотри
Ev::iteration()
-
pending
-
Количество ожидающих наблюдателей.
Значение
0 указывает, что
ожидающих наблюдателей нет.
-
io_interval
-
Более высокие значения
io_interval
разрешают
модулю libev
тратить больше времени для сбора событий
EvIo ,
что позволит обработать больше событий за одну итерацию
заплатив за это увеличенными задержками.
Время ожидания (и EvPeriodic
и EvTimer ) не будет затронуто.
Установка в ненулевое значение добавить дополнительный
вызов
sleep() в большинство итераций цикла.
Время сна гарантирует, что
libev
не будет передавать события
EvIo
чаще, чем один раз за этот период, в среднем.
Для большинства программ хорошим значением
io_interval
будет значение около
0.1,
этого достаточно для большинства интерактивных серверов (не для игр).
Обычно разница незаметна, если установили значение
меньше 0.01, поскольку
это значение будет близко к минимальному интервалу вычисляемого
времени для большинства систем.
Также читайте
» ФУНКЦИИ УПРАВЛЕНИЯ СОБЫТИЙНЫМИ ЦИКЛАМИ.
-
timeout_interval
-
Более высокие значения
timeout_interval
позволят
libev
тратить больше времени для сбора превышенного времени ожидания за счёт увеличения
задержек, джиттеров или неточностей (callback-функция наблюдателя
будет вызвана позже).
Наблюдатели EvIo не будут затронуты.
Увеличение этого значение не вызовет перерасхода ресурсов в
libev. Также читайте
» ФУНКЦИИ УПРАВЛЕНИЯ СОБЫТИЙНЫМИ ЦИКЛАМИ.
-
depth
-
Глубина рекурсии. Смотрите описание метода Ev::depth() .
Содержание
- EvLoop::backend — Возвращает целое число, описывающее бэкенд, используемый libev
- EvLoop::check — Создаёт объект EvCheck, связанный с текущим экземпляром цикла событий
- EvLoop::child — Создаёт объект EvChild, связанный с текущим циклом событий
- EvLoop::__construct — Конструктор объекта цикла событий
- EvLoop::defaultLoop — Возвращает или создаёт цикл событий по умолчанию
- EvLoop::embed — Создаёт экземпляр наблюдателя EvEmbed, связанный с текущим объектом EvLoop
- EvLoop::fork — Создаёт объект наблюдателя EvFork, связанный с текущим экземпляром цикла событий
- EvLoop::idle — Создаёт объект наблюдателя EvIdle, связанный с текущим экземпляром цикла событий
- EvLoop::invokePending — Вызывает всех ожидающих наблюдателей при сбросе их отложенного состояния
- EvLoop::io — Создаёт объект наблюдателя EvIo, связанный с текущим экземпляром цикла событий
- EvLoop::loopFork — Вызывается после разветления
- EvLoop::now — Возвращает текущее "event loop time"
- EvLoop::nowUpdate — Устанавливает текущее время, запрашивая ядро, обновляя время, возвращаемое EvLoop::now в процессе
- EvLoop::periodic — Создаёт объект наблюдателя EvPeriodic, связанный с текущим экземпляром цикла событий
- EvLoop::prepare — Создаёт объект наблюдателя EvPrepare, связанный с текущим экземпляром цикла событий
- EvLoop::resume — Возобновляет ранее приостановленный цикл событий
- EvLoop::run — Проверяет события и вызывает callback-функции в цикле
- EvLoop::signal — Создаёт объект наблюдателя EvSignal, связанный с текущим экземпляром цикла событий
- EvLoop::stat — Создаёт объект наблюдателя EvStat, связанный с текущим экземпляром цикла событий
- EvLoop::stop — Останавливает цикл событий
- EvLoop::suspend — Приостанавливает цикл
- EvLoop::timer — Создаёт объект наблюдателя EvTimer, связанный с текущим экземпляром цикла событий
- EvLoop::verify — Выполняет внутренние проверки согласованности (для отладки)
Пользователи ещё не добавляли примечания для страницы