Lua在错误发生时会进行垃圾回收吗?

我有一个使用 Lua 的 C++ 程序。C++ 将一个带有分配终止处理器的引用计数数据类型公开为 userdata,以便 Lua 可以拥有这些值。

这个方法很好用。但有一件事让我感到担心:如果执行 Lua 脚本时发生错误,且 Lua 持有这种数据类型的实例,那么终止处理器会被调用吗?

另一个表达该问题的方式是:Lua 在发生错误时会运行垃圾回收循环吗?

原文链接 https://stackoverflow.com/questions/5727091

点赞
stackoverflow用户107090
stackoverflow用户107090

将下面翻译成中文并且保留原本的 markdown 格式

是的,如果错误发生在受保护的调用内部,一切都继续正常运行。如果Lua发生了panic,那么Lua状态就不能再使用了。

2011-04-20 09:58:41