php8.5
Home/ Manual/ pthreads / worker/ Worker::collect

Worker::collect

PHP function Edit on GitHub ✎

(PECL pthreads >= 3.0.0)

Collect references to completed tasks

Description

Worker::collect([Callable $collector]): int

Allows the worker to collect references determined to be garbage by the optionally given collector.

Parameters

collector

A Callable collector that returns a boolean on whether the task can be collected or not. Only in rare cases should a custom collector need to be used.

Return Values

The number of remaining tasks on the worker's stack to be collected.

Examples

A basic example of Worker::collect

php
<?php
$worker = new Worker();

echo "There are currently {$worker->collect()} tasks on the stack to be collected\n";

for ($i = 0; $i < 15; ++$i) {
    $worker->stack(new class extends Threaded {});
}

echo "There are {$worker->collect()} tasks remaining on the stack to be collected\n";

$worker->start();

while ($worker->collect()); // blocks until all tasks have finished executing

echo "There are now {$worker->collect()} tasks on the stack to be collected\n";

$worker->shutdown();

The above example will output:

output
There are currently 0 tasks on the stack to be collected
There are 15 tasks remaining on the stack to be collected
There are now 0 tasks on the stack to be collected

Source: reference/pthreads/worker/collect.xml · from the official PHP manual (php/doc-en)