代码之家  ›  专栏  ›  技术社区  ›  andygeers

低级Lua解释器

lua
  •  7
  • andygeers  · 技术社区  · 17 年前

    有没有一种方法可以比标准的“Lua_pcall”函数调用更细粒度地从C/C++程序运行Lua代码?理想情况下,我希望能够循环一系列低级字节码指令(假设它有这样的指令)并逐个运行它们,这样我就可以编写自己的调度器,它可以更好地控制事情,而不仅仅是从头到尾运行一个完整的Lua函数。

    4 回复  |  直到 17 年前
        1
  •  14
  •   Jesse Rusak    17 年前

    也许回避了这个问题,但是您可以使用Lua协程而不是自定义C代码来等待某个事件发生。

    the lua coro docs

        2
  •  6
  •   Ken Fox    17 年前

    但是,只有当C例程在等待时不执行任何操作时,这才有效。如果它们长时间运行是因为它们计算了一些东西,例如,那么您需要运行多个OS线程。Lua是线程安全的——只需创建多个线程并在每个线程中运行Lua_open()。

    从…起 http://www.lua.org/pil/24.1.html

    Lua库不定义全局变量 变量。它保留了所有的功能 lua_状态和指向此状态的指针 结构作为参数传递给 实现使Lua可重入且 可以在多线程中使用 密码

    您还可以将这两种方法结合起来。如果您有一个包装器Lua函数来启动一个OS线程,那么您可以在启动线程后进行让步。协程管理器将跟踪线程,并在启动的线程完成后继续执行协程。这使您可以使用一个Lua解释器和多个运行纯C代码的工作线程。

        3
  •  5
  •   akauppi    17 年前

    如果你采用操作系统线程方式,请看一看 Lua Lanes

    请告诉我们您的问题是如何解决的。:)

        4
  •  2
  •   Jonathan Leffler    17 年前

    是吗 debugging interface 帮助