Worker::collect
(PECL pthreads >= 3.0.0)
Worker::collect — Собрать ссылки на завершённые задачи
Описание
Позволяет Worker'у собрать "мусорные" ссылки на задачи. Опционально можно задать пользовательский сборщик.
Список параметров
-
collector
-
Сборщик типа Callable, который должен возвращать
true
илиfalse
в зависимости от того, можно ли собрать задачу. Случаи, когда вам может понадобиться собственный сборщик, крайне редки.
Возвращаемые значения
Количество оставшихся задач в стеке Worker'а, которые будут собраны.
Примеры
Пример #1 Пример использования Worker::collect()
<?php
$worker = new Worker();
echo "Сейчас на стеке {$worker->collect()} задач, которые нужно собрать\n";
for ($i = 0; $i < 15; ++$i) {
$worker->stack(new class extends Threaded {});
}
echo "На стеке {$worker->collect()} задач, которые нужно собрать\n";
$worker->start();
while ($worker->collect()); // ждём, пока все задачи не завершат исполнение
echo "Теперь на стеке {$worker->collect()} задач, ждущих, когда их соберут\n";
$worker->shutdown();
Результат выполнения данного примера:
Сейчас на стеке 0 задач, которые нужно собрать На стеке 15 задач, которые нужно собрать Теперь на стеке 0 задач, ждущих, когда их соберут