2

我使用 lua 作为脚本语言来处理我的应用程序中的事件,并且我不想限制用户编写短处理程序 - 例如,有人可能想让一个处理程序运行无限循环,而另一个处理程序会中断第一个处理程序一。显然,lua 并不直接支持这种行为,所以我正在寻找解决方法。

首先,我想避免修改引擎。是否可以设置一个调试钩子,一旦状态达到其配额就会产生?从文档来看,这应该不难,但我不知道这是否有任何警告。

其次,我可以lua_close像在实际多线程中那样使用终止线程吗?

4

1 回答 1

1

我过去做过类似的事情。在单独的 Lua 状态上进行多线程是完全可能的。一定要看看 luaL_lock() 和 luaL_unlock() (加上相关的设置/清理),因为你无疑需要这个设置(一个简单的互斥锁就可以了)。

之后,为您的处理程序创建一个锁定/等待/中断 API 应该是一件相当简单的事情。

于 2013-10-03T11:57:27.313 回答