array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'class.eventbase.php', 1 => 'EventBase', ), 'up' => array ( 0 => 'book.event.php', 1 => 'Event', ), 'prev' => array ( 0 => 'event.timer.php', 1 => 'Event::timer', ), 'next' => array ( 0 => 'eventbase.construct.php', 1 => 'EventBase::__construct', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/event/eventbase.xml', ), 'extra_header_links' => array ( 'rel' => 'alternate', 'href' => '/manual/en/feeds/class.eventbase.atom', 'type' => 'application/atom+xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL event >= 1.2.6-beta)
Класс EventBase представляет структуру событийной базы libevent. Он содержит набор событий и может их опрашивать для определения, какие из них активны.
Каждая событийная база имеет
метод
или
бэкенд, которые используются для
определения готовых событий. Используемые методы:
select
,
poll
,
epoll
,
kqueue
,
devpoll
,
evport
и
win32
.
Для настройки событийной базы или для исключения определённых бэкендов можно использовать класс EventConfig.
НЕ
разрушайте объект
EventBase
пока не освобождены связанные с Event
ресурсы.
В противном случае это приведёт к непредсказуемым результатам!
EventBase::LOOP_ONCE
Флаг используется с методом EventBase::loop() и означает: "блокировать, пока libevent не получит активное событие, а затем выйти после того, как будут завершены функции обратного вызова для всех активных событий".
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
.