swoole版本:4.8.9
现象:运行代码提示“[FATAL ERROR]: all coroutines (count: 1) are asleep - deadlock!”
代码如下:
<?php
use Swoole\Process;
class DeadLock
{
public function startProcess()
{
$t = new Swoole\Process(function () {
swoole_async_set(['enable_coroutine' => true]);
go(function (){
for (; ;) {
Swoole\Coroutine\System::sleep(1);
var_dump('dd');
}
});
});
$t->start();
}
}
$proc = new Process(function () {
swoole_async_set(['enable_coroutine' => false]);
$cls = new DeadLock();
//$cls->startProcess(); //此处调用不会报错
\Swoole\Timer::after(1000, function () use ($cls) {
$cls->startProcess();//此处调用会报错
});
});
$proc->start();
https://wiki.swoole.com/#/getting_started/notice