Класс EventBase

(PECL event >= 1.2.6-beta)

Введение

Класс EventBase представляет структуру событийной базы модуля libevent. Класс содержит набор событий и умеет опрашивать события для определения, какие из событий активны.

Каждой событийной базе доступны метод или бэкенд, через которые определяют готовые события. Доступные методы: select, poll, epoll, kqueue, devpoll, evport и win32.

Класс EventConfig помогает настроить событийную базу или исключить отдельные бэкенды.

Внимание

НЕ разрушайте объект EventBase, пока не освободились связанные с объектом Event ресурсы, иначе результаты станут непредсказуемы!

Обзор класса

final class EventBase {
/* Константы */
const int LOOP_ONCE = 1;
const int LOOP_NONBLOCK = 2;
const int NOLOCK = 1;
const int STARTUP_IOCP = 4;
const int NO_CACHE_TIME = 8;
/* Методы */
public __construct( EventConfig $cfg = ?)
public dispatch(): void
public exit( float $timeout = ?): bool
public free(): void
public getFeatures(): int
public getMethod(): string
public gotExit(): bool
public gotStop(): bool
public loop( int $flags = ?): bool
public priorityInit( int $n_priorities ): bool
public reInit(): bool
public stop(): bool
}

Предопределённые константы

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-бэкендах.

Содержание

  • EventBase::__construct — Конструктор объекта EventBase
  • EventBase::dispatch — Отправляет ожидающие события
  • EventBase::exit — Прекращает отправку событий
  • EventBase::free — Освобождает ресурсы, выделенные для этой базы событий
  • EventBase::getFeatures — Возвращает битовую маску поддерживаемых функций
  • EventBase::getMethod — Возвращает используемый метод события
  • EventBase::getTimeOfDayCached — Возвращает текущее время базовый событий
  • EventBase::gotExit — Проверяет, завершился ли цикл обработки событий
  • EventBase::gotStop — Проверяет, завершился ли цикл обработки событий
  • EventBase::loop — Отправляет ожидающие события
  • EventBase::priorityInit — Устанавливает количество приоритетов на базу событий
  • EventBase::reInit — Повторная инициализация базы событий (после разветвления)
  • EventBase::stop — Сообщает event_base прекратить отправку событий
Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top