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()); Fiber::suspend();
echo "Inside Fiber again after resume(). isRunning: ";
var_dump($fiber->isRunning()); });
echo "Before Fiber launch. isRunning: ";
var_dump($fiber->isRunning()); $fiber->start($fiber);
echo "After suspend. isRunning: ";
var_dump($fiber->isRunning()); $fiber->resume();
echo "After resume. isRunning: ";
var_dump($fiber->isRunning()); ?>
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)