php-doc-en/reference/ev/evchild/construct.xml

194 lines
4.7 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="evchild.construct" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>EvChild::__construct</refname>
<refpurpose>Constructs the EvChild watcher object</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier>
<methodname>EvChild::__construct</methodname>
<methodparam>
<type>int</type>
<parameter>pid</parameter>
</methodparam>
<methodparam>
<type>bool</type>
<parameter>trace</parameter>
</methodparam>
<methodparam>
<type>callable</type>
<parameter>callback</parameter>
</methodparam>
<methodparam
choice="opt">
<type>mixed</type>
<parameter>data</parameter>
<initializer>&null;</initializer>
</methodparam>
<methodparam
choice="opt">
<type>int</type>
<parameter>priority</parameter>
<initializer>0</initializer>
</methodparam>
</methodsynopsis>
<para>
Constructs the
<classname>EvChild</classname>
watcher object.
</para>
<para>
Call the callback when a status change for process ID
<parameter>pid</parameter>
(or any
<emphasis>PID</emphasis>
if
<parameter>pid</parameter>
is
<constant>0</constant>
) has been received(a status change happens when the process terminates or
is killed, or, when
<parameter>trace</parameter>
is &true;, additionally when it is stopped or continued). In other words,
when the process receives a
<constant>SIGCHLD</constant>
,
<emphasis>Ev</emphasis>
will fetch the outstanding exit/wait status for all changed/zombie children
and call the callback.
</para>
<para>
It is valid to install a child watcher after an
<classname>EvChild</classname>
has exited but before the event loop has started its next iteration. For
example, first one calls
<literal>fork</literal>
, then the new child process might exit, and only then an
<classname>EvChild</classname>
watcher is installed in the parent for the new
<emphasis>PID</emphasis>
.
</para>
<para>
You can access both exit/tracing status and
<parameter>pid</parameter>
by using the
<varname>rstatus</varname>
and
<varname>rpid</varname>
properties of the watcher object.
</para>
<para>
The number of
<emphasis>PID</emphasis>
watchers per
<emphasis>PID</emphasis>
is unlimited. All of them will be called.
</para>
<para>
The
<methodname>EvChild::createStopped</methodname>
method doesn&apos;t start(activate) the newly created watcher.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term>
<parameter>pid</parameter>
</term>
<listitem>
<para>
Wait for status changes of process PID(or any process if PID is
specified as
<constant>0</constant>
).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>trace</parameter>
</term>
<listitem>
<para>
If &false;, only activate the watcher when the process terminates.
Otherwise(&true;) additionally activate the watcher when the process is
stopped or continued.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>callback</parameter>
</term>
<listitem>
<para>
See
<link linkend="ev.watcher-callbacks">Watcher callbacks</link>
.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>data</parameter>
</term>
<listitem>
<para>
Custom data associated with the watcher.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>priority</parameter>
</term>
<listitem>
<para>
<link linkend="ev.constants.watcher-pri">Watcher priority</link>
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns EvChild object on success.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member>
<methodname>EvLoop::child</methodname>
</member>
</simplelist>
</refsect1>
</refentry>
<!-- 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
-->