Преглед на файлове

Avoid starting a GC cycle immediately after library init.

Mike Pall преди 15 години
родител
ревизия
f396f3d192
променени са 2 файла, в които са добавени 2 реда и са изтрити 2 реда
  1. 1 1
      src/lj_api.c
  2. 1 1
      src/luajit.c

+ 1 - 1
src/lj_api.c

@@ -1147,7 +1147,7 @@ LUA_API int lua_gc(lua_State *L, int what, int data)
     g->gc.threshold = LJ_MAX_MEM;
     break;
   case LUA_GCRESTART:
-    g->gc.threshold = g->gc.total;
+    g->gc.threshold = data == -1 ? (g->gc.total/100)*g->gc.pause : g->gc.total;
     break;
   case LUA_GCCOLLECT:
     lj_gc_fullgc(L);

+ 1 - 1
src/luajit.c

@@ -470,7 +470,7 @@ static int pmain(lua_State *L)
   LUAJIT_VERSION_SYM();  /* linker-enforced version check */
   lua_gc(L, LUA_GCSTOP, 0);  /* stop collector during initialization */
   luaL_openlibs(L);  /* open libraries */
-  lua_gc(L, LUA_GCRESTART, 0);
+  lua_gc(L, LUA_GCRESTART, -1);
   s->status = handle_luainit(L);
   if (s->status != 0) return 0;
   script = collectargs(argv, &has_i, &has_v, &has_e);