Класс EventBase
EventBase
&reftitle.intro;
Класс EventBase представляет структуру
событийной базы модуля libevent. Он содержит набор событий и может
их опрашивать для определения, какие из них активны.
Каждая событийная база имеет
метод
или
бэкенд, которые используются для
определения готовых событий. Используемые методы:
select
,
poll
,
epoll
,
kqueue
,
devpoll
,
evport
и
win32
.
Для настройки событийной базы или для исключения определённых
бэкендов можно использовать класс EventConfig.
НЕ
разрушайте объект
EventBase
пока не освобождены связанные с Event ресурсы.
В противном случае это приведёт к непредсказуемым результатам!
&reftitle.classsynopsis;
EventBase
final
EventBase
&Constants;
const
int
EventBase::LOOP_ONCE
1
const
int
EventBase::LOOP_NONBLOCK
2
const
int
EventBase::NOLOCK
1
const
int
EventBase::STARTUP_IOCP
4
const
int
EventBase::NO_CACHE_TIME
8
const
int
EventBase::EPOLL_USE_CHANGELIST
16
&Methods;
&reftitle.constants;
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
.
&reference.event.entities.eventbase;