Класс EvCheck
EvCheck
&reftitle.intro;
Наблюдатели EvPrepare и
EvCheck
обычно используются в паре.
Наблюдатель EvPrepare
вызывается до блокировки процесса, затем вызывается
EvCheck
Не разрешается вызывать EvLoop::run
или аналогичные методы или функции, введённые в текущий цикл событий другими
наблюдателями EvPrepare или
EvCheck.
Однако другие циклы событий, не текущий, могут. Смысл в том, что текущему не нужно
проверять рекурсию в таких наблюдателях, т.е. всегда будет последовательность:
EvPrepare -> блокировка ->
EvCheck,
так что наблюдателя каждого вида всегда будут вызывать в парах, захватывая
блокирующий вызов.
Основная цель заключается в интеграции других событийных механизмов в
libev и улучшенное их использование. Они могут быть
использованы, например, при отслеживании изменении переменных, при реализации
пользовательских наблюдателей, при интегрировании NET-SNMP или сопрограмм библиотеки
и многое другое. Они также иногда полезны при кешировании данных и при очистке данных
до блокировки.
Рекомендуется устанавливать наблюдателям
EvCheck
наивысший приоритет (Ev::MAXPRI),
чтобы обеспечить возможность их запуска раньше любых других наблюдателей
после опроса (это не имеет значения для наблюдателей
EvPrepare).
Кроме того, наблюдатели
EvCheck
не смогут активировать/подавать события. Пока libev
полностью поддерживает все это, они могут выполняться раньше, чем другие наблюдатели
EvCheck выполнят свою работу.
&reftitle.classsynopsis;
EvCheck
EvCheck
extends
EvWatcher
&InheritedProperties;
&Methods;
&InheritedMethods;
&reference.ev.entities.evcheck;