2012-12-26 19:46:06 +00:00
|
|
|
<?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 you fork, then the new child
|
|
|
|
process might exit, and only then do you install an
|
|
|
|
<classname>EvChild</classname> watcher 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>
|
|
|
|
You can have as many <emphasis>PID</emphasis> watchers per
|
|
|
|
<emphasis>PID</emphasis> as you want, they will all be called.
|
|
|
|
</para>
|
|
|
|
<para>
|
|
|
|
The <methodname>EvChild::createStopped</methodname> method doesn'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
|
2012-12-27 14:54:54 +00:00
|
|
|
as <constant>0</constant>).
|
2012-12-26 19:46:06 +00:00
|
|
|
</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
|
|
|
|
-->
|