在考虑使用Lua协程的游戏的加载/保存机制时,出现了一个相当有趣的问题--您可以将运行中的Lua状态完全转储到文件中吗?除了显而易见的倾倒环境的解决方案之外,还出现了两个值得注意的问题--倾倒函数(我认为这更容易)和倾倒协程。
后者让我怀疑,是否有可能将一个正在运行的协程转储到以后的恢复调用中。它的用途将非常广泛--从长远来看,它将允许序列化正在运行的任务并将它们传递给Erlang风格。
因此产生了这样的问题--这是可能的吗?
我并不是在寻找(可能是显而易见的)“不”的答案,因为在某种程度上所需的工作可能是可能的(因此,在最坏的情况下,人们可能会尝试破解编译器)。我感兴趣的是这会有多难。
发布于 2011-03-10 11:30:01
PlutoLibrary为Lua提供了“重负荷持久化”。它可以序列化和反序列化协程。
发布于 2011-03-10 10:50:52
有一个实验模块lper,可以保存和恢复整个Lua解释器的状态。我个人从来没有使用过它,因为它依赖于没有明显对应的Linux persistent memory库。这可能会成为进一步研究的起点。
在wiki中还有一个Lua持久性解决方案列表。
https://stackoverflow.com/questions/5254183
复制相似问题