Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 裸金属项目的Lua评估_C_Lua_Coroutine_State Machine - Fatal编程技术网

C 裸金属项目的Lua评估

C 裸金属项目的Lua评估,c,lua,coroutine,state-machine,C,Lua,Coroutine,State Machine,我正在为一个裸机项目评估Lua(大部分项目已经在运行),它看起来像我们需要的 我需要把它放到我的代码中,并且能够调用Lua而不必挂在那里。我需要反复调用Lua,就像它是一个状态机一样,让它在每次调用它时返回一个状态,以表示“继续调用我,我还没有完成”、“停止,我有一个错误”或“停止,没有错误,脚本已完成” 我见过一些钩子,它们允许对计算的字节码的每一行或每一字节从Lua回调到c,但我不能使用回调 Lua的状态机实现存在吗?您正在寻找使用的C函数。根据其文件: lua_resume返回lua_YI

我正在为一个裸机项目评估Lua(大部分项目已经在运行),它看起来像我们需要的

我需要把它放到我的代码中,并且能够调用Lua而不必挂在那里。我需要反复调用Lua,就像它是一个状态机一样,让它在每次调用它时返回一个状态,以表示“继续调用我,我还没有完成”、“停止,我有一个错误”或“停止,没有错误,脚本已完成”

我见过一些钩子,它们允许对计算的字节码的每一行或每一字节从Lua回调到c,但我不能使用回调

Lua的状态机实现存在吗?

您正在寻找使用的C函数。根据其文件:

lua_resume返回lua_YIELD(如果协同路由产生),0(如果协同路由在没有错误的情况下完成其执行),或者错误代码(参见lua_pcall)

对我来说,这听起来正是您所描述的。

lua\u resume()
是一个阻塞调用:
当协同程序暂停或完成其执行时,此调用返回。OP希望在单独的OS线程中运行Lua并轮询其状态。或者他想以调试的方式运行Lua:如果他的系统是单线程的,则一步一步地运行。