lua

A copy of the Lua development repository
Log | Files | Refs | README

commit fa2f294dd1269115bf9cf534dd38553e2f606801
parent 82fae58e25b7e2be6390238ce60d5678b24dce44
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date:   Fri,  9 Dec 2022 16:34:52 -0300

Reduce calls to 'luaC_step' when GC is stopped

Diffstat:
Mlgc.c | 9++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/lgc.c b/lgc.c @@ -1681,12 +1681,15 @@ static void incstep (lua_State *L, global_State *g) { } /* -** performs a basic GC step if collector is running +** 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.) */ void luaC_step (lua_State *L) { global_State *g = G(L); - lua_assert(!g->gcemergency); - if (gcrunning(g)) { /* running? */ + if (!gcrunning(g)) /* not running? */ + luaE_setdebt(g, -2000); + else { if(isdecGCmodegen(g)) genstep(L, g); else