Coroutine::isCancellationRequested

(PHP 8.6+, True Async 1.0)

public Coroutine::isCancellationRequested(): bool

Проверяет, был ли запрошен отмена корутины. В отличие от isCancelled(), возвращает true сразу после вызова cancel(), даже если корутина ещё выполняется внутри protect().

Возвращаемое значение

booltrue, если отмена была запрошена.

Примеры

Пример #1 Разница с isCancelled()

<?php

use function Async\spawn;
use function Async\suspend;
use function Async\protect;

$coroutine = spawn(function() {
    protect(function() {
        suspend();
    });
});

suspend();

// До отмены
var_dump($coroutine->isCancellationRequested()); // bool(false)

$coroutine->cancel();

// Сразу после cancel()
var_dump($coroutine->isCancellationRequested()); // bool(true)
var_dump($coroutine->isCancelled());             // bool(false) — ещё в protect()

См. также