TaskSet::cancel

(PHP 8.6+, True Async 1.0)

public TaskSet::cancel(?Async\AsyncCancellation $cancellation = null): void

Cancela todas las coroutines en ejecución y vacía la cola de tareas. Llama implícitamente a seal().

Parámetros

cancellation
Motivo de la cancelación. Si es null, se crea un AsyncCancellation por defecto.

Ejemplos

Ejemplo #1 Cancelación condicional

<?php

use Async\TaskSet;

spawn(function() {
    $set = new TaskSet();

    $set->spawn(fn() => longRunningTask1());
    $set->spawn(fn() => longRunningTask2());

    // Cancelar todas las tareas
    $set->cancel();

    echo $set->isSealed() ? "sealed\n" : "no\n"; // "sealed"
});

Ver también