- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
int lua_resume (lua_State *L, lua_State *from, int nargs);
[...]
The parameter
from
represents the coroutine that is resumingL
. If there is no such coroutine, this parameter can beNULL
.
但这对我来说意义不大。它到底是做什么的?在什么情况下我必须传递 NULL 以外的任何值?
最佳答案
仅根据 source code 判断对于 5.2,from
似乎仅用于正确计算恢复期间嵌套 C 调用的数量。
L->nCcalls = (from) ? from->nCcalls + 1 : 1;
和
lua_assert(L->nCcalls == ((from) ? from->nCcalls : 0));
执行coroutine.resume
似乎是这样使用的。
它使用正在恢复它的主线程的 from
值在协程线程上恢复协程。
status = lua_resume(co, L, narg);
关于c - `from`的 `lua_resume`参数的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26347022/
注意:下面有一些问题可以说明我的想法,但是我要寻找的唯一答案是标题中实际问题的答案。在这里不要求“一本书”,也不要求对所有这些都逐项答复。 我正在尝试从C API启动协程,让其产生,并在以后继续进行(
我有一些 lua 脚本有一些长时间运行的任务,比如获取网页,所以我让它 yield 然后 C 代码句柄获取页面作业异步,所以线程可以自由地做其他工作,并在指定时间后返回检查查看获取页面作业是否已完成,
来自 Lua 5.2 Reference Manual : int lua_resume (lua_State *L, lua_State *from, int nargs); [...] The p
我只想恢复 func 协程两次,如果 n==0 则产量,如果 n==1 则返回,但它核心转储,有什么问题吗? “hello world”应该始终保留在 LL 的堆栈中,我不知道出了什么问题。 [lia
我是一名优秀的程序员,十分优秀!