TaskGroup::close
(PHP 8.6+, True Async 1.0)
php
public TaskGroup::close(): voidЗакрывает группу. Если попытаться использовать spawn() или spawnWithKey() будет выброшено исключение. Уже запущенные корутины и задачи в очереди продолжают работать.
Повторный вызов — noop.
Примеры
Пример #1 Базовое использование
php
<?php
use Async\TaskGroup;
spawn(function() {
$group = new TaskGroup();
$group->spawn(fn() => "задача");
$group->close();
try {
$group->spawn(fn() => "ещё задача");
} catch (\Async\AsyncException $e) {
echo $e->getMessage() . "\n";
// "Cannot spawn tasks on a closed TaskGroup"
}
});См. также
- TaskGroup::cancel — Отменить все задачи (неявно вызывает close)
- TaskGroup::isClosed — Проверить, закрыта ли группа