Coroutine::isCancellationRequested

(PHP 8.6+, True Async 1.0)

public Coroutine::isCancellationRequested(): bool

Verifica se è stato richiesto l’annullamento della coroutine. A differenza di isCancelled(), restituisce true immediatamente dopo la chiamata a cancel(), anche se la coroutine è ancora in esecuzione all’interno di protect().

Valore di ritorno

booltrue se è stato richiesto l’annullamento.

Esempi

Esempio #1 Differenza da isCancelled()

<?php

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

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

suspend();

// Prima dell'annullamento
var_dump($coroutine->isCancellationRequested()); // bool(false)

$coroutine->cancel();

// Immediatamente dopo cancel()
var_dump($coroutine->isCancellationRequested()); // bool(true)
var_dump($coroutine->isCancelled());             // bool(false) -- ancora in protect()

Vedi anche