c++监控线程检测发现某一个工作线程,因为编写lua代码有bug问题,导致调用lua一直堵塞 。求大神解答
Closed this issue · 1 comments
xpston008 commented
场景:
c++多线程,
1、c++多个工作线程,通过luaL_dostring运行lua脚本(每一个工作线程都是独立lua_State)
2、c++一个监控线程。
3、c++监控线程检测发现某一个工作线程,因为编写lua代码有bug问题,导致调用lua一直堵塞。
待解决问题:
c++监控线程怎么让工作线程的lua脚本终止运行后释放资源。
看到你的blog :https://blog.codingnow.com/2024/03/skynet_none_blocking_function.html
有这么一句话描述"如果是 Lua 函数产生的死循环,可以通过发送 signal 打断正在运行运行的 Lua 虚拟机"
下了一份代码,没有看到相关代码。能否描述一下实现过程。尝试了网上很多办法,都没实现
@cloudwu
cloudwu commented
那个是 skynet 的机制,ltask 没有加入这个机制。你想自己实现,可以看 https://github.com/cloudwu/skynet/blob/master/service-src/service_snlua.c#L523-L531