1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-23 23:32:16 +01:00
Files
archived-doc-ru/reference/ev/evcheck.xml
2026-01-18 22:20:57 +00:00

111 lines
5.5 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: b4fbf4434abeca44c58575ff3967e5640f7877d5 Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.evcheck" role="class">
<title>Класс EvCheck</title>
<titleabbrev>EvCheck</titleabbrev>
<partintro>
<!-- {{{ EvCheck intro -->
<section xml:id="evcheck.intro">
&reftitle.intro;
<simpara>
Наблюдатели <classname>EvPrepare</classname> и
<classname>EvCheck</classname>
обычно используются в паре.
Наблюдатель <classname>EvPrepare</classname>
вызывается до блокировки процесса, затем вызывается
<classname>EvCheck</classname>
</simpara>
<simpara>
Не разрешается вызывать <methodname>EvLoop::run</methodname>
или аналогичные методы или функции, введённые в текущий цикл событий другими
наблюдателями <classname>EvPrepare</classname> или
<classname>EvCheck</classname>.
Однако другие циклы событий, не текущий, могут. Смысл в том, что текущему не нужно
проверять рекурсию в таких наблюдателях, т.е. всегда будет последовательность:
<classname>EvPrepare</classname> -&gt; блокировка -&gt;
<classname>EvCheck</classname>,
так что наблюдателя каждого вида всегда будут вызывать в парах, захватывая
блокирующий вызов.
</simpara>
<simpara>
Основная цель заключается в интеграции других событийных механизмов в
<emphasis>libev</emphasis> и улучшенное их использование. Они могут быть
использованы, например, при отслеживании изменении переменных, при реализации
пользовательских наблюдателей, при интегрировании NET-SNMP или сопрограмм библиотеки
и многое другое. Они также иногда полезны при кешировании данных и при очистке данных
до блокировки.
</simpara>
<simpara>
Рекомендуется устанавливать наблюдателям
<classname>EvCheck</classname>
наивысший приоритет (<constant>Ev::MAXPRI</constant>),
чтобы обеспечить возможность их запуска раньше любых других наблюдателей
после опроса (это не имеет значения для наблюдателей
<classname>EvPrepare</classname>).
</simpara>
<simpara>
Кроме того, наблюдатели
<classname>EvCheck</classname>
не смогут активировать/подавать события. Пока <emphasis>libev</emphasis>
полностью поддерживает все это, они могут выполняться раньше, чем другие наблюдатели
<classname>EvCheck</classname> выполнят свою работу.
</simpara>
</section>
<!-- }}} -->
<section xml:id="evcheck.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass>
<classname>EvCheck</classname>
</ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>EvCheck</classname>
</ooclass>
<ooclass>
<modifier>extends</modifier>
<classname>EvWatcher</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<!--<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>-->
<classsynopsisinfo role="comment">&InheritedProperties;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('evwatcher.synopsis')/descendant::db:fieldsynopsis)"/>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evcheck')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])"/>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evcheck')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.evwatcher')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])"/>
</classsynopsis>
<!-- }}} -->
</section>
</partintro>
&reference.ev.entities.evcheck;
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->