libgo
libgo copied to clipboard
发现一个while true循环的问题
就是在class里面写一个死循环间隔几秒写一下日志,如果程序运行一段时间(几个小时)就会刷出很多的log,不是间隔几秒,而是不断的在写。
我是把协程当成线程用了。换成c++的标准线程就没问题。
sleep 是线程,co_sleep 用于协程
sleep 是线程,co_sleep 用于协程
哦 ,好的 我改一下试试。谢谢指导。
sleep 是线程,co_sleep 用于协程
换成co_sleep也是这样,运行一段时间就突然爆发刷出很多高频率的日志。没有按照预期那样每隔几秒输出一条。
libgo的timer有bug,运行一段时间后会不断产生事件,可以尝试fix一下
这个库没人维护了吗
死循环中使用co_sleep(1)确实有问题,我也遇到了同样的问题。
一开始我认为co_sleep存在问题,之后尝试了使用
boost::asio::steady_timer tm(gv.g_io);
tm.expires_after(std::chrono::minutes(1));
tm.wait();
来代替co_sleep(1),结果仍存在问题。
后来使用co_chan类型的TimePop方法,仍然存在问题。
最后直接不用了
master分支的新版本修复了这个问题
@yangqun 楼主这个问题解决了吗?matser的bug多的一逼,不敢用了
已收到您的邮件,如有问题会尽快给您回复.