浏览代码

only destroy state after running all finalizers

Roberto Ierusalimschy 19 年之前
父节点
当前提交
c408158047
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      lstate.c

+ 2 - 2
lstate.c

@@ -1,5 +1,5 @@
 /*
-** $Id: lstate.c,v 2.34 2005/09/20 17:55:53 roberto Exp roberto $
+** $Id: lstate.c,v 2.35 2005/10/06 20:46:25 roberto Exp roberto $
 ** Global State
 ** See Copyright Notice in lua.h
 */
@@ -198,7 +198,6 @@ static void callallgcTM (lua_State *L, void *ud) {
 
 LUA_API void lua_close (lua_State *L) {
   L = G(L)->mainthread;  /* only the main thread can be closed */
-  luai_userstateclose(L);
   lua_lock(L);
   luaF_close(L, L->stack);  /* close all upvalues for this thread */
   luaC_separateudata(L, 1);  /* separate udata that have GC metamethods */
@@ -209,6 +208,7 @@ LUA_API void lua_close (lua_State *L) {
     L->nCcalls = 0;
   } while (luaD_rawrunprotected(L, callallgcTM, NULL) != 0);
   lua_assert(G(L)->tmudata == NULL);
+  luai_userstateclose(L);
   close_state(L);
 }