组件Coroutine::getAwaitingInfo

Coroutine::getAwaitingInfo ​

(PHP 8.6+, True Async 1.0)

php
public Coroutine::getAwaitingInfo(): array

返回协程当前正在等待的调试信息。适用于诊断卡住的协程。

返回值 ​

array -- 包含等待信息的数组。在当前构建中扩展尚未填充它,因此该方法总是返回空数组;要查看协程停在了哪里,请使用 getSuspendLocation() 和 getTrace()。

示例 ​

示例 #1 诊断等待状态 ​

php
<?php

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

spawn(function() {
    Async\delay(5000);
});

suspend();

foreach (get_coroutines() as $coro) {
    if ($coro->isSuspended()) {
        $info = $coro->getAwaitingInfo();
        echo "Coroutine #{$coro->getId()} is awaiting:\n";
        print_r($info);
    }
}

参见 ​