function task()
{
    $tid = (yield getTaskId());
    $childTid = (yield newTask(childTask()));
    for ($i = 1; $i <= 6; ++$i) {
        echo "parent task {$tid} iteration {$i}.\n";
        yield;
        if ($i == 3) {
            (yield killTask($childTid));
        }
    }
}
function parentTask()
{
    $tid = (yield getTaskId());
    $childTid = (yield newTask(childTask()));
    for ($i = 1; $i <= 6; $i++) {
        echo "Parent task {$tid} iteration {$i}.<br>";
        yield;
        if ($i == 3) {
            echo "Parent sending message to kill child task.<br>";
            (yield killTask($childTid));
        }
    }
}
function task($max)
{
    $tid = (yield getTaskId());
    // <-- here's the syscall!
    for ($i = 1; $i <= $max; ++$i) {
        echo "This is task {$tid} iteration {$i}.\n";
        yield;
    }
}
Exemple #4
0
 public function run()
 {
     $value = (yield getTaskId());
     $this->context->set('taskId', $value);
     (yield 'SysCall.GetTastId');
 }