我在 C/C+= 应用程序中嵌入了 Lua。我希望能够设置一个超时值,以防止陷入可能导致无限循环(甚至需要无限时间才能完成的字符串搜索)的糟糕编写的脚本。
基本上,我希望能够设置一个时间间隔,如果脚本未能在该时间间隔结束时完成运行,我希望能够终止 Lua 脚本引擎(如果可能的话,优雅地)。
有人知道执行此操作的最佳实践方法吗?
最佳答案
控制脚本所用时间的一种方法是设置计数 Hook ,然后在 Hook 中引发错误。但如果脚本可以调用可能需要很长时间的 C 函数,这将不起作用。
关于c++ - 为嵌入式 Lua 设置超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4508147/