Coroutine::getSuspendLocation

(PHP 8.6+, True Async 1.0)

public Coroutine::getSuspendLocation(): string

"file:line" 格式返回协程的挂起位置。如果信息不可用,则返回 "unknown"

返回值

string – 类似 "/app/script.php:42""unknown" 的字符串。

示例

示例 #1 诊断卡住的协程

<?php

use function Async\spawn;
use function Async\suspend;
use function Async\get_coroutines;

spawn(function() {
    file_get_contents('https://slow-api.example.com'); // 卡在这里
});

suspend();

foreach (get_coroutines() as $coro) {
    if ($coro->isSuspended()) {
        echo "Coroutine #{$coro->getId()} waiting at: {$coro->getSuspendLocation()}\n";
    }
}

参见