Voting

: two minus one?
(Example: nine)

The Note You're Voting On

thisisroot at gmail dot com
19 years ago
Below is a simple example of forking some children and timing the total duration (useful for stress tests).

<?php

$isParent
= true;
$children = array();
$start = microtime( true);

/* Fork you!
* (Sorry, I had to)
*/
$ceiling = $CONCURRENCY - 1;

for (
$i = 0; (( $i < $ceiling) && ( $isParent)); $i++) {
$pid = pcntl_fork();
if (
$pid === 0) {
$isParent = false;

} elseif (
$pid != -1) {
$children[] = $pid;

}

}

/* Process body */
echo "Do stuff here\n";

/* Cleanup */
if ( $isParent) {
$status = null;
while (
count( $children)) {
pcntl_wait( $status);
array_pop( $children);
}

echo
"Completed in " . ( microtime( true) - $start) . " seconds.\n";

}

?>

<< Back to user notes page

To Top