TaskSet::awaitCompletion
(PHP 8.6+, True Async 1.0)
public TaskSet::awaitCompletion(): void
Suspendiert die aktuelle Coroutine, bis alle Tasks im Set abgeschlossen sind.
Das Set muss vor dem Aufruf dieser Methode versiegelt sein.
Im Gegensatz zu joinAll() wirft diese Methode keine Exceptions bei Task-Fehlern
und gibt keine Ergebnisse zurück.
Fehler
Wirft Async\AsyncException, wenn das Set nicht versiegelt ist.
Beispiele
Beispiel #1 Auf Abschluss warten
<?php
use Async\TaskSet;
spawn(function() {
$set = new TaskSet();
$set->spawn(fn() => processFile("a.txt"));
$set->spawn(fn() => processFile("b.txt"));
$set->spawn(fn() => throw new \RuntimeException("error"));
$set->seal();
$set->awaitCompletion(); // Wirft nicht, auch wenn Tasks fehlgeschlagen sind
echo "Alle Tasks abgeschlossen\n";
});
Siehe auch
- TaskSet::joinAll — Warten und Ergebnisse abrufen
- TaskSet::finally — Abschluss-Handler