Coroutine::isCancellationRequested
(PHP 8.6+, True Async 1.0)
public Coroutine::isCancellationRequested(): bool
Перевіряє, чи було запитано скасування корутини. На відміну від isCancelled(), повертає true одразу після виклику cancel(), навіть якщо корутина все ще виконується всередині protect().
Значення, що повертається
bool – true, якщо скасування було запитано.
Приклади
Приклад #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()
Дивіться також
- Coroutine::isCancelled – Перевірка завершеного скасування
- Coroutine::cancel – Скасувати корутину
- protect() – Захищена секція