О постоянных событиях

По умолчанию, событие в статусе ожидания становится активным, когда файловый дескриптор события становится доступен для записи или чтения, или истёк период ожидания. Статус ожидания снимается с события непосредственно перед запуском callback-функции события. Поэтому из callback-функции события на событии вызывают метод Event::add(), чтобы снова перевести событие в статус ожидания.

Событие становится постоянным, если на событии установили флаг Event::PERSIST. Это означает, что событие остаётся в статусе ожидания, даже если запущена callback-функция события. Флаг постоянного снимают с события путём вызова на событии метода Event::del().

Время ожидания постоянного события сбрасывается каждый раз, когда запускается callback-функция события. Поэтому, если для события установили флаги Event::READ | Event::PERSIST и время ожидания равно 5 секундам, событие станет активно в следующих случаях:

  1. Каждый раз, когда сокет или дескриптор файла готов к чтению.

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

Дополнительную информацию даёт раздел «» Быстрое переносимое неблокирующее сетевое программирование с Libevent, о постоянных событиях».

Добавить

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

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