(PHP 8 >= 8.1.0)
Fiber::isRunning — Определяет, работает ли файбер
Сигнатура функции не содержит параметров.
Возвращает true только если файбер работает. Файбер считается работающим после вызова
Fiber::start() , Fiber::resume() или
Fiber::throw() , который ещё не был возвращён.
Возвращает false , если файбер не работает.
Fiber::isRunning() will only return true if you call it from within a Fiber while it is running.
<?php
$fiber = new Fiber(function ($fiber) {
echo "Inside Fiber. isRunning: ";
var_dump($fiber->isRunning()); // Here is true
Fiber::suspend();
echo "Inside Fiber again after resume(). isRunning: ";
var_dump($fiber->isRunning()); // true again
});
echo "Before Fiber launch. isRunning: ";
var_dump($fiber->isRunning()); // Here is false
$fiber->start($fiber);
echo "After suspend. isRunning: ";
var_dump($fiber->isRunning()); // Here is false
$fiber->resume();
echo "After resume. isRunning: ";
var_dump($fiber->isRunning()); // Here is false
?>
Result:
Before Fiber launch. isRunning: bool(false)
Inside Fiber. isRunning: bool(true)
After suspend. isRunning: bool(false)
Inside Fiber again after resume(). isRunning: bool(true)
After resume. isRunning: bool(false)