lua是否对错误进行垃圾收集

Does lua garbage collect upon an error?

本文关键字:是否 错误 lua      更新时间:2023-10-16

我有一个使用lua的c++程序。c++将引用计数数据类型作为userdata公开,并带有指定的终结器,以便lua可以获得这些值的所有权。

这很好。然而,有一件事让我担心:如果在执行lua保存该数据类型实例的脚本时发生错误,那么会调用终结器吗?

这个问题的另一种表述是:lua是否在出现错误时运行垃圾收集周期?

是的,如果错误发生在受保护的调用中,一切都将继续正常运行。如果Lua出现panic,那么Lua状态就不是可用状态。