По умолчанию, событие в статусе ожидания становится активным, когда файловый дескриптор события становится доступен для записи или чтения, или истёк период ожидания. Статус ожидания снимается с события непосредственно перед запуском callback-функции события. Поэтому из callback-функции события на событии вызывают метод Event::add(), чтобы снова перевести событие в статус ожидания.
Событие становится постоянным,
если на событии установили флаг Event::PERSIST
.
Это означает, что событие остаётся в статусе ожидания, даже если
запущена callback-функция события.
Флаг постоянного снимают с события путём
вызова на событии метода Event::del().
Время ожидания постоянного события сбрасывается каждый раз, когда запускается
callback-функция события. Поэтому, если для события установили флаги
Event::READ
|
Event::PERSIST
и время ожидания равно 5 секундам,
событие станет активно в следующих случаях:
Каждый раз, когда сокет или дескриптор файла готов к чтению.
Каждый раз, когда прошли пять секунд с момента последнего события.
Дополнительную информацию даёт раздел «» Быстрое переносимое неблокирующее сетевое программирование с Libevent, о постоянных событиях».