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 unAsyncCancellationpor 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
- TaskSet::seal — Sellar el conjunto
- TaskSet::dispose — Destruir el scope del conjunto