TaskSet::awaitCompletion

(PHP 8.6+, True Async 1.0)

public TaskSet::awaitCompletion(): void

Suspende la coroutine actual hasta que todas las tareas del conjunto se hayan completado.

El conjunto debe estar sellado antes de llamar a este método.

A diferencia de joinAll(), este método no lanza excepciones ante errores de las tareas y no devuelve resultados.

Errores

Lanza Async\AsyncException si el conjunto no está sellado.

Ejemplos

Ejemplo #1 Esperar la finalización

<?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(); // No lanza excepción aunque las tareas hayan fallado

    echo "All tasks completed\n";
});

Ver también