Про постійні (persistent) події
За замовчуванням, коли подія, що очікує, стає активною (оскільки їх файловий дескриптор стає доступним для запису або читання, або закінчився період очікування), у нього знімається статус очікує рівно перед тим, як буде запущена його функція зворотного виклику. Таким чином, щоб знову перевести його у статус очікування, необхідно виконати для нього Event::add() з його callback-функції.
Якщо ж на події встановлено прапор Event::PERSIST
, та подія стає постійним. Це означає, що подія залишається в статусі очікування, навіть якщо запущено її функцію зворотного виклику. Щоб прибрати у події прапор сталості, необхідно виконати для нього Event::del()
Час очікування постійної події скидається щоразу, коли запускається його callback-функція. Таким чином, якщо для події встановлено прапори Event::READ
Event::PERSIST
та час очікування в 5 секунд, подія стане активно у наступних випадках:
-
Щоразу, коли сокет або дескриптор файлу готовий до читання.
-
Щоразу, коли минуло п'ять секунд з моменту останньої події.
Смотрите также» Fast Швидке, переносне, неблокуюче мережне програмування з Libevent, про постійні події