| 
<?php
 // Include PowerProcess
 require_once '../PowerProcess.class.php';
 
 // Instance new PowerProcess class with 2 threads, 10 second timeout,
 // standalone, log to STDOUT and include debug logging
 // Since we have a 10 second timeout, the last five threads will be
 // terminated by PowerProcess
 $pp = new PowerProcess(2,10,false,'php://stdout',true);
 
 // Make some fake data
 $data = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
 
 // Start the control loop
 while ($pp->RunControlCode()) {
 // Check if we have data to process
 if (count($data) > 0) {
 // We have data to process
 if ($pp->SpawnReady()) {
 // Assign the thread data
 $pp->threadData = array_shift($data);
 
 // Try to spawn the thread
 if (!$pp->SpawnThread()) {
 $pp->Log("Error spawning thread");
 
 // Sleep just in case
 sleep(1);
 
 // Add the data back to the queue
 $data[] = $pp->threadData;
 }
 }
 } else {
 // No more data to process - shutdown
 $pp->Shutdown(true);
 }
 }
 
 // Start the thread code
 
 $pp->Log("Processing: {$pp->threadData}");
 for ($i = 0; $i < $pp->threadData; $i++) {
 sleep(1);
 $pp->Log("Processed to {$i}");
 }
 // Exit thread
 exit(0);
 
 ?>
 |