Lua c-api: How to identify the coroutine/thread involved in a lua_pushcclosure callback?
是否有办法知道哪个执行lua脚本的线程(协程)在lua_pushcclosure调用的源头?
为了管理与lua线程相关的某些内容(延迟的暂停/恢复或私有线程变量),我需要标识回调中涉及的线程。我知道在使用lua_gettop创建线程索引时可以获得线程索引,但是我找不到使用它的方法,因此当从Lua脚本发出lua_pushcclosure调用时,它有助于识别线程。
我当前的系统允许嵌套脚本调用,因此一个脚本可以执行其他脚本(每个嵌套脚本调用使用相同的lua_state创建一个新线程。因此lua_state用于获取堆栈中的多个线程条目。)
我正在使用Lua 5.2
如果您处于从Lua调用的C函数中,并且想知道您所在的线程,只需调用