libgo icon indicating copy to clipboard operation
libgo copied to clipboard

发现一个while true循环的问题

Open yangqun opened this issue 2 years ago • 8 comments

就是在class里面写一个死循环间隔几秒写一下日志,如果程序运行一段时间(几个小时)就会刷出很多的log,不是间隔几秒,而是不断的在写。 image

yangqun avatar Feb 04 '22 03:02 yangqun

image

yangqun avatar Feb 04 '22 03:02 yangqun

我是把协程当成线程用了。换成c++的标准线程就没问题。

yangqun avatar Feb 04 '22 03:02 yangqun

sleep 是线程,co_sleep 用于协程

osabc avatar Feb 20 '22 18:02 osabc

sleep 是线程,co_sleep 用于协程

哦 ,好的 我改一下试试。谢谢指导。

yangqun avatar Mar 05 '22 10:03 yangqun

sleep 是线程,co_sleep 用于协程

换成co_sleep也是这样,运行一段时间就突然爆发刷出很多高频率的日志。没有按照预期那样每隔几秒输出一条。 image

yangqun avatar Mar 06 '22 13:03 yangqun

libgo的timer有bug,运行一段时间后会不断产生事件,可以尝试fix一下

Wkh3 avatar Mar 17 '22 11:03 Wkh3

这个库没人维护了吗

mage-game avatar May 22 '22 03:05 mage-game

死循环中使用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方法,仍然存在问题。

最后直接不用了

gswgit avatar Jul 04 '22 05:07 gswgit

master分支的新版本修复了这个问题

yyzybb537 avatar Sep 08 '22 08:09 yyzybb537

@yangqun 楼主这个问题解决了吗?matser的bug多的一逼,不敢用了

SignalEmit avatar Apr 17 '24 03:04 SignalEmit

已收到您的邮件,如有问题会尽快给您回复. 

paradiseforgithub avatar Apr 17 '24 03:04 paradiseforgithub