c++ - Lua C-API : How to identify the coroutine/thread involved in a lua_pushcclosure callback?

标签 c++ c lua lua-5.2

有没有办法知道执行 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/

相关文章:

c++ - 在没有 header 的 Visual Studio 项目中使用 .dll 文件

c++ - 如何判断 dylib 是为 10.6 还是 10.5 编译的?

c - Linux 文件中的魔数(Magic Number)。 C语言编程

c - 如何将二维数组传递给C中的函数?

c++ - 如何使用 luabind 在脚本中正确加载文件?

c++ - 从 lua 加载一个库

c++ - 共享命名内存 (Windows)

c++ - 对象优先级队列 C++ 的比较函数

c++ - 等待输入一段时间

variables - 计算表中未知变量的数量