[PHP-DOC] cvs: phpdoc /en/functions pcntl.xml From: Daniel Beckham (danbeck <email protected>)
Date: 09/28/01

danbeck Fri Sep 28 17:40:05 2001 EDT

  Modified files:
    /phpdoc/en/functions pcntl.xml
  Log:
  completed intro text, added a couple of function examples
  
  
Index: phpdoc/en/functions/pcntl.xml
diff -u phpdoc/en/functions/pcntl.xml:1.3 phpdoc/en/functions/pcntl.xml:1.4
--- phpdoc/en/functions/pcntl.xml:1.3 Fri Sep 21 18:47:45 2001
+++ phpdoc/en/functions/pcntl.xml Fri Sep 28 17:40:05 2001
@@ -1,10 +1,26 @@
 <?xml encoding="iso-8859-1"?>
-<!-- $Revision: 1.3 $ -->
+<!-- $Revision: 1.4 $ -->
  <reference id="ref.pcntl">
   <title>Process Control Functions</title>
   <titleabbrev>PCNTL</titleabbrev>
   <partintro>
    <para>
+ Process Control support in PHP implements the Unix style of
+ process creation, program execution, signal handling and process
+ termination. Process Control should not be enabled within a
+ webserver environment and unexpected results may happen if any
+ Process Control functions are used within a webserver environment.
+ </para>
+ <para>
+ This documentation is intended to explain the general usage of
+ each of the Process Control functions. For detailed information
+ about Unix process control you are encouraged to consult your
+ systems documentation including fork(2), waitpid(2) and signal(2)
+ or a comprehensive reference such as <citation>Advanced
+ Programming in the UNIX Environment by W. Richard Stevens
+ (Addison-Wesley)</citation>.
+ </para>
+ <para>
     Process Control support in PHP is not enabled by default. You
     will need to use the <link
     linkend="install.configure.enable-pcntl">--enable-pcntl</link>
@@ -89,7 +105,6 @@
    </table>
    </para>
 
-
    <sect1 id="pcntl-example">
     <title>Process Control Example</title>
     <para>
@@ -176,6 +191,23 @@
     parent's context, no child process will be created, and a PHP
     error is raised.
    </para>
+ <example>
+ <title><function>pcntl_fork</function> Example</title>
+ <programlisting role="php">
+&lt;?php
+
+$pid = pcntl_fork();
+if ($pid == -1) {
+ die("could not fork");
+} else if ($pid) {
+ // we are the parent
+} else {
+ // we are the child
+}
+
+?&gt;
+ </programlisting>
+ </example>
    <para>
     See also <function>pcntl_waitpid</function> and
     <function>pcntl_signal</function>.
@@ -210,6 +242,35 @@
     <function>pcntl_signal</function> returns &true; on success or
     &false; on failure.
    </para>
+ <example>
+ <title><function>pcntl_fork</function> Example</title>
+ <programlisting role="php">
+&lt;?php
+
+// setup signal handlers
+pcntl_signal(SIGTERM, "sig_handler");
+pcntl_signal(SIGHUP, "sig_handler");
+
+// signal handler function
+function sig_handler($signo) {
+
+ switch($signo) {
+ case SIGTERM:
+ // handle shutdown tasks
+ exit;
+ break;
+ case SIGHUP:
+ // handle restart tasks
+ break;
+ default:
+ // handle all other signals
+ }
+
+}
+
+?&gt;
+ </programlisting>
+ </example>
    <para>
     See also <function>pcntl_fork</function> and
     <function>pcntl_waitpid</function>.