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()

Дивіться також