有没有办法知道执行 Lua 脚本的线程(协程)是 lua_pushcclosure 调用的起点?
为了管理一些与 lua 线程相关的东西(延迟暂停/恢复,或私有(private)线程变量),我需要识别回调中涉及的线程。我知道我可以在使用 lua_gettop 创建它时获取线程索引,但我找不到使用它的方法,因此它有助于在从 Lua 脚本发出 lua_pushcclosure 调用时识别线程。
我当前的系统允许嵌套脚本调用,因此一个脚本可以执行其他脚本(每个嵌套脚本调用都会创建一个具有相同 lua_state 的新线程。因此 lua_state 用于在堆栈中获取多个线程条目。)
我正在使用 Lua 5.2
最佳答案
如果您在一个从 Lua 调用的 C 函数中,并且您想知道您在哪个线程中...只需调用 lua_pushthread(L)
.
关于c++ - Lua C-API : How to identify the coroutine/thread involved in a lua_pushcclosure callback?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12328021/