如何检查 lua_state 是否已经关闭?

我想要检查一个 lua_state 是否已经关闭。我该如何检查它?我使用的是 C++ Lua 嵌入器库:https://github.com/lua/lua

点赞
用户12918181
用户12918181

在 Lua 中关闭 lua_State 会释放所有已分配的内存,包括 lua_State 的本身。

来自 Lua 5.4.2 源代码:

static void close_state (lua_State *L) {
  global_State *g = G(L);
  ...
  (*g->frealloc)(g->ud, fromstate(L), sizeof(LG), 0);  /* free main block */
}

这意味着关闭的 lua_State 指向无效的内存。

因此,您需要在线程或异步任务中管理 打开/关闭 状态。

2021-01-30 13:22:51