From 258355734d3aceb34eb6288ece37d9bbd7f2bc6d Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Mon, 21 Oct 2024 15:18:20 -0300 Subject: Better support in 'ltests' for tracing the GC --- lgc.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'lgc.c') diff --git a/lgc.c b/lgc.c index 58d0bf7d..a43cc6a8 100644 --- a/lgc.c +++ b/lgc.c @@ -1695,21 +1695,23 @@ static void incstep (lua_State *L, global_State *g) { #if !defined(luai_tracegc) -#define luai_tracegc(L) ((void)0) +#define luai_tracegc(L,f) ((void)0) #endif /* -** Performs a basic GC step if collector is running. (If collector is -** not running, set a reasonable debt to avoid it being called at -** every single check.) +** Performs a basic GC step if collector is running. (If collector was +** stopped by the user, set a reasonable debt to avoid it being called +** at every single check.) */ void luaC_step (lua_State *L) { global_State *g = G(L); lua_assert(!g->gcemergency); - if (!gcrunning(g)) /* not running? */ - luaE_setdebt(g, 20000); + if (!gcrunning(g)) { /* not running? */ + if (g->gcstp & GCSTPUSR) /* stopped by the user? */ + luaE_setdebt(g, 20000); + } else { - luai_tracegc(L); /* for internal debugging */ + luai_tracegc(L, 1); /* for internal debugging */ switch (g->gckind) { case KGC_INC: case KGC_GENMAJOR: incstep(L, g); @@ -1719,6 +1721,7 @@ void luaC_step (lua_State *L) { setminordebt(g); break; } + luai_tracegc(L, 0); /* for internal debugging */ } } -- cgit v1.2.3-55-g6feb