(PECL event >= 1.2.6-beta)
Класс EventBase представляет структуру событийной базы модуля libevent. Класс содержит набор событий и умеет опрашивать события для определения, какие из событий активны.
Каждой событийной базе доступны
метод
или
бэкенд, через которые
определяют готовые события. Доступные методы:
select
,
poll
,
epoll
,
kqueue
,
devpoll
,
evport
и win32
.
Класс EventConfig помогает настроить событийную базу или исключить отдельные бэкенды.
НЕ
разрушайте объект
EventBase,
пока не освободились связанные с объектом Event
ресурсы,
иначе результаты станут непредсказуемы!
EventBase::LOOP_ONCE
Флаг указывают при вызове метода EventBase::loop() и указывает: «блокировать, пока модуль libevent не получит активное событие, а затем выйти после завершения callback-функции для всех активных событий».
EventBase::LOOP_NONBLOCK
Флаг указывают при вызове метода EventBase::loop() и означает: «не блокировать: посмотреть, какие события уже готовы, запустить обратные вызовы с наивысшим приоритетом, затем выйти».
EventBase::NOLOCK
Флаг конфигурации. Не выделять блокировку для событийной базы, даже если настроили блокирование.
EventBase::STARTUP_IOCP
Флаг конфигурации только для ОС Windows. Разрешает диспетчер IOCP при старте.
EventBase::NO_CACHE_TIME
Флаг конфигурации. Вместо проверки текущего времени каждый раз при готовности цикла запустить функцию обратного вызова по таймеру, проверять время после каждого вызова такой функции.
EventBase::EPOLL_USE_CHANGELIST
На epoll
-бэкендах флаг сообщает,
что можно безопасно использовать внутренний код
списка изменений Libevent для пакетного добавления и удаления в целях
минимизации количества системных вызовов.
Установка флага часто повышает производительность, но иногда приводит к проявлению бага Linux: небезопасно использовать этот флаг, если какой-либо файловый дескриптор склонировали функцией dup() или аналогичной. Установка флага иногда приводит к странным ошибкам, которые трудно диагностировать.
Флаг также активируют установкой переменной
окружения EVENT_EPOLL_USE_CHANGELIST
.
Флаг действует только на epoll
-бэкендах.