diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2021-02-26 11:41:02 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2021-02-26 11:41:02 -0300 |
| commit | 1537d6680bb66dc2484e11815bc2cd0e31ca39cc (patch) | |
| tree | f035f9e28fa2f1a6fba62e1b25d32b8a4b824204 /lstate.c | |
| parent | e0260eb2d4085723302d637dd8f3fca339d18817 (diff) | |
| download | lua-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.c | 1 |
1 files changed, 1 insertions, 0 deletions
| @@ -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; |
