我在下面有这样的c++代码来调用lua代码
for (int i =0; i < 2000; i++)
{
lua_getglobal(g_L, "AnalyzeScript");
lua_pushstring(g_L, "1");
lua_pushstring(g_L, "2");
lua_pushstring(g_L, "3");
if(lua_pcall(g_L,3,0,0) != 0)
{
// char temp[200]={0}; sprintf(temp, "err: %s", lua_tostring(g_L, -1));
// MessageBoxA(0,temp,0,0);
}
lua 代码如下
local cnt = 0
function AnalyzeScript(foldername, filename, pOut)
cnt = cnt + 1
print(cnt)
end
一切都很好,除了“无法恢复死协程”(哪个协程在另一个地方)
看起来 2000 次调用 lua func 会破坏 lua 堆栈,如果我将 2000 更改为 200,则一切正常!
为什么?