| 
<?php
 // Include PowerProcess
 require_once '../PowerProcess.class.php';
 
 // Instance new PowerProcess class with 2 threads, 30 second timeout,
 // as daemon with logging to daemonlog.txt
 $pp = new PowerProcess(2,30,true,'daemonlog.txt',false);
 
 // Write some stuff to the log file
 $pp->Log("Greetings! I am a Daemon example!");
 $pp->Log("My PID is " . $pp->GetPID());
 $pp->Log("I am going to write some stuff to a file now.");
 
 // Echo this so the user can see that the daemon is starting
 // The echo lines will go to STOUT instead of the log file
 echo "Daemon started with 2 threads...\n";
 echo "You can run `tail -f daemonlog.txt` to follow my progress...\n";
 
 // Generate 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 for data in the queue
 if (count($data)) {
 // Check if we can spawn
 if ($pp->SpawnReady()) {
 // Spawn a new thread
 $pp->SpawnThread('Thread-'.array_shift($data));
 }
 } else {
 // No more data - shutdown
 $pp->Shutdown();
 $pp->Log("The daemon is now exiting...");
 }
 }
 
 // Start the thread code
 if ($pp->RunThreadCode()) {
 // Just write some stuff and sleep
 $pp->Log("This is " . $pp->WhoAmI() . " just saying hello world! Now to sleep for 5 seconds");
 sleep(5);
 }
 |