虽然我觉得它应该很常见,但我还是找不到这个问题的答案,所以我猜测我做了些蠢事或者没有读过这个问题。手动正确。
无论如何,这就是我想要做的事情。 我有一个程序,它有几个为Lua注册的C函数。
在另一点上,我用
调用lua函数lua_getglobal(mainL,"interact");
和
if (lua_pcall(mainL, 2, 0, 0) != 0)
printf("error running function `f': %s",
lua_tostring(L, -1));
printf("interact\n");
现在在Lua函数中,我调用了其他已注册的C函数。 似乎每次它都这样做,它运行在它的单独线程中。 (如果我错了,请纠正我)
所以我想问的是,在执行Lua函数中的下一行之前,C语言函数调用完成之前是否阻止它是否阻塞。
(是的,我尝试在我的C程序中使用互斥锁,它适用于我,但由于某些原因似乎不能在其他PC上工作,所以我试图阻止它因为这将使一切变得更容易)
谢谢
答案 0 :(得分:2)
似乎每次都这样做,它就会以单独的线程运行。 (如果我错了,请纠正我)
你错了;-)或者至少,如果你看到其他线程被创建,那么你从Lua调用的C代码中的某些东西就是这样做的。从Lua调用的C(反之亦然)将明确阻止。