- 论坛徽章:
- 0
|
用的lua5.2 我的需求是想在lua中实现阻塞函数
网上搜了下然后我这样实现
int pause(lua_State *L)
{
return lua_yield(L, 0);
}
lua_pushcfunction( L, pause );
lua_setglobal( L, "pause" );
lua_pushcfunction( L, trace );
lua_setglobal( L, "trace" );
if (luaL_loadfile(L, "test.lua"))
error(L, "cannot run script %s\n", lua_tostring(L,-1));
lua_resume(L, NULL, 0);
在lua单独中调用没问题
但是如果我写进一个函数里面,然后由c来调用就出问题了
function func()
trace(1)
pause(5000);
trace(2);
end
lua_getglobal(L, "func");
lua_pcall(L, 0, 0, 0);
这时候会出来lua_longjmp错误
google到这个http://www.lua.org/manual/5.2/manual.html#4.7
但是基础太差 看不懂 不知道怎么实现
求指教 谢谢。
|
|