将一个函数从全局状态推入Lua线程。

我有一个名为 lua_tcall 的 C++ 函数,它扩展了 lua_pcall 的能力。当调用 lua_tcall 时,它期望栈顶的值是一个 Lua 函数,就像 lua_pcall 一样。我希望 lua_tcall 能够创建一个线程,并将全局堆栈顶部的函数用作线程的函数。我该如何将全局状态的函数推入从 lua_newthread 返回的 lua_State* 中呢?

原文链接 https://stackoverflow.com/questions/8627916

点赞
stackoverflow用户734069
stackoverflow用户734069

为了将一个函数从一个 lua_State 转移到另一个,必须使用一个对两个状态都是全局的东西作为对象的中介来存储。你可以使用全局变量或注册表条目。

2011-12-25 03:12:13
stackoverflow用户1125291
stackoverflow用户1125291

使用lua_xmove在状态之间传递值比使用共享中介更好。

2012-01-01 18:18:00