TaskSet::cancel

(PHP 8.6+, True Async 1.0)

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

Отменяет все работающие корутины и сбрасывает очередь задач. Неявно вызывает seal().

Параметры

cancellation
Причина отмены. Если null, создаётся стандартный AsyncCancellation.

Примеры

Пример #1 Отмена по условию

<?php

use Async\TaskSet;

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

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

    // Отменяем все задачи
    $set->cancel();

    echo $set->isSealed() ? "запечатан\n" : "нет\n"; // "запечатан"
});

См. также