<?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); 
 
?>
 
 |