Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Process Control Functions : pcntl_waitpid

pcntl_waitpid

Waits on or returns the status of a forked child (PHP 4 >= 4.0.7, PHP 5)
int pcntl_waitpid ( int pid, int &status [, int options] )


Code Examples / Notes » pcntl_waitpid

admin

Here's a decent example of the pcntl_waitpid() call:
       $i = 0;
       $starttime = microtime(TRUE);
       $pid_arr = array();
       while ($i < intval($argv[1]))
       {
           $pid = pcntl_fork();
           if ($pid == -1)
           {
               die('could not fork');
           }
           else
           {
               if ($pid) // parent
               {
                   $pid_arr[$i] = $pid;
               }
               else // child
               {
                   performSomeFunction($i+1);
               }
           }
           $i++;
       }
       foreach ($pid_arr as $pid)
       {
           // we are the parent
           pcntl_waitpid($pid, $status);
       }
       $elapsed = microtime(TRUE) - $starttime;
       print "\n==> total elapsed: " . sprintf("%f secs.\n", $elapsed);


kevin

---
      while ($i < intval($argv[1]))
      {
          $pid = pcntl_fork();
          if ($pid == -1)
          {
              die('could not fork');
          }
          else
          {
              if ($pid) // parent
              {
                  $pid_arr[$i] = $pid;
              }
              else // child
              {
                  performSomeFunction($i+1);
              }
          }
          $i++;
      }
---
careful, this will create a lot more children than you probably expect. You must return or exit after performSomeFunction($i+1); ie,
              else // child
              {
                  performSomeFunction($i+1);
                  exit(0);
              }


Change Language


Follow Navioo On Twitter
pcntl_alarm
pcntl_exec
pcntl_fork
pcntl_getpriority
pcntl_setpriority
pcntl_signal
pcntl_wait
pcntl_waitpid
pcntl_wexitstatus
pcntl_wifexited
pcntl_wifsignaled
pcntl_wifstopped
pcntl_wstopsig
pcntl_wtermsig
eXTReMe Tracker