From: Mike Pall Date: Sun, 25 Apr 2010 17:45:54 +0000 (+0200) Subject: Avoid starting a GC cycle immediately after library init. X-Git-Tag: v2.0.0-beta5~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f396f3d192eb635b3b3a3d074e45e6b810689918;p=thirdparty%2FLuaJIT.git Avoid starting a GC cycle immediately after library init. --- diff --git a/src/lj_api.c b/src/lj_api.c index ed4238a9..2b99c267 100644 --- a/src/lj_api.c +++ b/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); diff --git a/src/luajit.c b/src/luajit.c index cc2bf710..e8024479 100644 --- a/src/luajit.c +++ b/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);