Closed limingxinleo closed 5 years ago
<?php
$id = go(function () {
echo 1;
\co::sleep(1);
echo 2;
});
\Swoole\Event::wait();
go(function () {
echo 1;
\co::sleep(1);
echo 2;
});
这样就可以复现,最后一个echo 2打不出来
请在程序末尾添加 Swoole\Event::wait()
,勿调用两次。
那我有什么办法,可以等待协程回收么?我在写单元测试,不希望我单测内的协程交叉执行
可以用 swoole_event_dispatch,你可以换个思路去实现。
go(function () {
global $argc, $argv;
require '/path/to/phpunit.phar';
});
当我使用协程时,中间使用\Swoole\Event::wait();等待回收协程,当再次执行后,会抛出这个错误