mirror of
https://github.com/php/doc-ru.git
synced 2026-03-23 23:32:16 +01:00
114 lines
5.2 KiB
XML
114 lines
5.2 KiB
XML
<?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.evsignal" role="class">
|
||
<title>Класс EvSignal</title>
|
||
<titleabbrev>EvSignal</titleabbrev>
|
||
<partintro>
|
||
<!-- {{{ EvSignal intro -->
|
||
<section xml:id="evsignal.intro">
|
||
&reftitle.intro;
|
||
<simpara>
|
||
Наблюдатель <classname>EvSignal</classname> создаёт событие когда
|
||
процесс получает один или несколько конкретных сигналов. Так как сигналы
|
||
приходят асинхронно, <emphasis>libev</emphasis> старается с этим бороться
|
||
и доставлять их синхронно, т.е аналогично всем остальным событиям в нормальном
|
||
режиме обработки.
|
||
</simpara>
|
||
<simpara>
|
||
Ограничений на количество наблюдателей за одним и тем же сигналом нет, но
|
||
только в пределах одного событийного цикла. Например, в цикле по умолчанию
|
||
работает наблюдатель за <constant>SIGINT</constant>, а в другом цикле
|
||
наблюдатель за <constant>SIGIO</constant>, но при этом нельзя
|
||
наблюдать за <constant>SIGINT</constant> в двух циклах сразу. Ну и за
|
||
<constant>SIGCHLD</constant> можно наблюдать только в цикле по умолчанию.
|
||
</simpara>
|
||
<simpara>
|
||
Если доступно и поддерживается, <emphasis>libev</emphasis>
|
||
устанавливает свои обработчики с разрешённым поведением
|
||
<literal>SA_RESTART</literal> (или аналогом), поэтому системные вызовы
|
||
не будут некорректно прерываться. Если будут возникать проблемы с прерыванием
|
||
системных вызовов сигналами, все сигналы можно блокировать в
|
||
наблюдателе <classname>EvCheck</classname> и разблокировать в
|
||
наблюдателе <classname>EvPrepare</classname>.
|
||
</simpara>
|
||
</section>
|
||
<!-- }}} -->
|
||
<section xml:id="evsignal.synopsis">
|
||
&reftitle.classsynopsis;
|
||
|
||
<!-- {{{ Synopsis -->
|
||
<classsynopsis>
|
||
<ooclass>
|
||
<classname>EvSignal</classname>
|
||
</ooclass>
|
||
<!-- {{{ Class synopsis -->
|
||
<classsynopsisinfo>
|
||
<ooclass>
|
||
<classname>EvSignal</classname>
|
||
</ooclass>
|
||
<ooclass>
|
||
<modifier>extends</modifier>
|
||
<classname>EvWatcher</classname>
|
||
</ooclass>
|
||
</classsynopsisinfo>
|
||
<!-- }}} -->
|
||
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
|
||
<fieldsynopsis>
|
||
<modifier>public</modifier>
|
||
<varname linkend="evsignal.props.signum">signum</varname>
|
||
</fieldsynopsis>
|
||
<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.evsignal')/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.evsignal')/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>
|
||
<!-- {{{ EvSignal properties -->
|
||
<section xml:id="evsignal.props">
|
||
&reftitle.properties;
|
||
<variablelist>
|
||
<varlistentry xml:id="evsignal.props.signum">
|
||
<term>
|
||
<varname>signum</varname>
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Номер сигнала. Смотрите константы, экспортированные модулем <emphasis>pcntl</emphasis>.
|
||
Также смотрите страницу руководства <literal>signal(7)</literal>.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</section>
|
||
<!-- }}} -->
|
||
</partintro>
|
||
|
||
&reference.ev.entities.evsignal;
|
||
|
||
</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
|
||
-->
|