1

有没有办法知道执行 Lua 脚本的线程(协程)是 lua_pushcclosure 调用的来源?

为了管理一些与 lua 线程相关的东西(延迟暂停/恢复或私有线程变量),我需要识别回调中涉及的线程。我知道我可以在使用 lua_gettop 创建线程索引时获取它,但我找不到使用它的方法,因此当从 Lua 脚本发出 lua_pushcclosure 调用时它有助于识别线程。

我当前的系统允许嵌套脚本调用,因此脚本可以执行其他脚本(每个嵌套脚本调用创建一个具有相同 lua_state 的新线程。因此 lua_state 用于获取堆栈中的多个线程条目。)

我正在使用 Lua 5.2

4

1 回答 1

3

如果你在一个从 Lua 调用的 C 函数中,并且你想知道你在哪个线程中......只需调用lua_pushthread(L).

于 2012-09-08T15:00:07.430 回答