aboutsummaryrefslogtreecommitdiff
path: root/lstate.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2021-02-26 11:41:02 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2021-02-26 11:41:02 -0300
commit1537d6680bb66dc2484e11815bc2cd0e31ca39cc (patch)
treef035f9e28fa2f1a6fba62e1b25d32b8a4b824204 /lstate.c
parente0260eb2d4085723302d637dd8f3fca339d18817 (diff)
downloadlua-1537d6680bb66dc2484e11815bc2cd0e31ca39cc.tar.gz
lua-1537d6680bb66dc2484e11815bc2cd0e31ca39cc.tar.bz2
lua-1537d6680bb66dc2484e11815bc2cd0e31ca39cc.zip
New control for reentrancy of emergency collections
Instead of assuming that shrinking a block may be an emergency collection, use an explicit field ('gcstopem') to stop emergency collections while GC is working.
Diffstat (limited to 'lstate.c')
-rw-r--r--lstate.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lstate.c b/lstate.c
index 04909db3..c5e3b437 100644
--- a/lstate.c
+++ b/lstate.c
@@ -379,6 +379,7 @@ LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) {
379 g->panic = NULL; 379 g->panic = NULL;
380 g->gcstate = GCSpause; 380 g->gcstate = GCSpause;
381 g->gckind = KGC_INC; 381 g->gckind = KGC_INC;
382 g->gcstopem = 0;
382 g->gcemergency = 0; 383 g->gcemergency = 0;
383 g->finobj = g->tobefnz = g->fixedgc = NULL; 384 g->finobj = g->tobefnz = g->fixedgc = NULL;
384 g->firstold1 = g->survival = g->old1 = g->reallyold = NULL; 385 g->firstold1 = g->survival = g->old1 = g->reallyold = NULL;