lua_resume 是否必须配合一个对应的 lua_yield?

我有一个基于 C 的 API 暴露给 Lua,在游戏引擎中根据触发器调度 Lua 协程。

我一直在使用同步线程(纤程)在我的游戏循环中处理 Lua 多任务,以维护一组我只需要调用 lua_resume 的 lua_Thread 对象。

重新阅读 lua_resume/lua_yield 文档时,我认为我应该关注到一个大型的内存泄漏,因为每次调用 lua_yield 必须能够从某种堆栈中弹出状态信息。

原文链接 https://stackoverflow.com/questions/5165179

点赞
stackoverflow用户459706
stackoverflow用户459706

Coroutines 是可以被 GC 正确收集的。如果没有引用它,它将被收集。因此,不存在内存泄漏的可能性。

您不必 yield(),可以让协程完成,或从其中 return - 您将无法恢复已完成的协程。

2011-03-02 10:57:11