【发布时间】:2021-05-03 05:52:18
【问题描述】:
我想检查一个 lua_state 是否关闭。我怎样才能检查它?我将此库用作 c++ lua 嵌入器:https://github.com/lua/lua
【问题讨论】:
-
为什么需要检查这个?这似乎是一个 XY 问题。
我想检查一个 lua_state 是否关闭。我怎样才能检查它?我将此库用作 c++ lua 嵌入器:https://github.com/lua/lua
【问题讨论】:
在 lua 中关闭 lau_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指向无效内存。
因此,由您来管理线程或异步任务中的open/closed 状态。
【讨论】: