The parallel\Future class

(0.8.0)

Futures

A Future represents the return value or uncaught exception from a task, and exposes an API for cancellation.

Example #1 Example showing Future as return value

<?php
$runtime
= new \parallel\Runtime;
$future = $runtime->run(function(){
return
"World";
});
printf("Hello %s\n", $future->value());
?>

The above example will output something similar to:

 Hello World 

The behaviour of a future also allows it to be used as a simple synchronization point even where the task does not return a value explicitly.

Example #2 Example showing Future as synchronization point

<?php
$runtime
= new \parallel\Runtime;
$future = $runtime->run(function(){
echo
"in child ";
for (
$i = 0; $i < 500; $i++) {
if (
$i % 10 == 0) {
echo
".";
}
}
echo
" leaving child";
});

$future->value();
echo
"\nparent continues\n";
?>

The above example will output something similar to:

 in child .................................................. leaving child parent continues 

Class synopsis

finalclassparallel\Future {
publicvalue(): mixed
publiccancelled(): bool
publicdone(): bool
publiccancel(): bool
}

Table of Contents

To Top