Worker::collect

(PECL pthreads >= 3.0.0)

Worker::collectCollecte les références des tâches terminées

Description

public function Worker::collect(Callable $collector = ?): int

Permet au worker de collecter les références déterminées comme étant des miettes par le collector éventuellement donné.

Liste de paramètres

collector
Une fonction de rappel qui retourne un booléen sur la possibilité de collecter la tâche ou non. Seuls dans des cas rares un collecteur personnalisé devrait être utilisé.

Valeurs de retour

Le nombre de tâches restantes sur la pile du worker à collecter.

Exemples

Exemple #1 Un exemple basique de Worker::collect()

<?php
$worker
= new Worker();

echo
"Il y a actuellement {$worker->collect()} tâches sur la pile à collecter\n";

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

echo
"Il reste {$worker->collect()} tâches sur la pile à collecter\n";

$worker->start();

while (
$worker->collect()); // bloque jusqu'à ce que toutes les tâches soient terminées

echo "Il y a maintenant {$worker->collect()} tâches sur la pile à collecter\n";

$worker->shutdown();

L'exemple ci-dessus va afficher :

Il y a actuellement 0 tâches sur la pile à collecter
Il reste 15 tâches sur la pile à collecter
Il y a maintenant 0 tâches sur la pile à collecter