Worker::collect
(PECL pthreads >= 3.0.0)
Worker::collect — Collect references to completed tasks
説明
public Worker::collect
([ Callable $collector
] ) : int
Allows the worker to collect references determined to be garbage by the optionally given collector.
パラメータ
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.
返り値
The number of remaining tasks on the worker's stack to be collected.
例
例1 A basic example of Worker::collect()
<?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 executingecho "There are now {$worker->collect()} tasks on the stack to be collected\n";$worker->shutdown();
上の例の出力は以下となります。
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