From f396f3d192eb635b3b3a3d074e45e6b810689918 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sun, 25 Apr 2010 19:45:54 +0200 Subject: Avoid starting a GC cycle immediately after library init. --- src/lj_api.c | 2 +- src/luajit.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') 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); -- cgit v1.2.3-55-g6feb