Про постійні (persistent) події

За замовчуванням, коли подія, що очікує, стає активною (оскільки їх файловий дескриптор стає доступним для запису або читання, або закінчився період очікування), у нього знімається статус очікує рівно перед тим, як буде запущена його функція зворотного виклику. Таким чином, щоб знову перевести його у статус очікування, необхідно виконати для нього Event::add() з його callback-функції.

Якщо ж на події встановлено прапор Event::PERSIST, та подія стає постійним. Це означає, що подія залишається в статусі очікування, навіть якщо запущено її функцію зворотного виклику. Щоб прибрати у події прапор сталості, необхідно виконати для нього Event::del()

Час очікування постійної події скидається щоразу, коли запускається його callback-функція. Таким чином, якщо для події встановлено прапори Event::READ Event::PERSIST та час очікування в 5 секунд, подія стане активно у наступних випадках:

  1. Щоразу, коли сокет або дескриптор файлу готовий до читання.

  2. Щоразу, коли минуло п'ять секунд з моменту останньої події.

Смотрите также» Fast Швидке, переносне, неблокуюче мережне програмування з Libevent, про постійні події