aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lgc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lgc.c b/lgc.c
index 8cb3e9fa..e9189ac3 100644
--- a/lgc.c
+++ b/lgc.c
@@ -1423,6 +1423,7 @@ static lu_mem atomic (lua_State *L) {
1423 /* registry and global metatables may be changed by API */ 1423 /* registry and global metatables may be changed by API */
1424 markvalue(g, &g->l_registry); 1424 markvalue(g, &g->l_registry);
1425 markmt(g); /* mark global metatables */ 1425 markmt(g); /* mark global metatables */
1426 work += propagateall(g); /* empties 'gray' list */
1426 /* remark occasional upvalues of (maybe) dead threads */ 1427 /* remark occasional upvalues of (maybe) dead threads */
1427 work += remarkupvals(g); 1428 work += remarkupvals(g);
1428 work += propagateall(g); /* propagate changes */ 1429 work += propagateall(g); /* propagate changes */
@@ -1486,8 +1487,7 @@ static lu_mem singlestep (lua_State *L) {
1486 return propagatemark(g); /* traverse one gray object */ 1487 return propagatemark(g); /* traverse one gray object */
1487 } 1488 }
1488 case GCSenteratomic: { 1489 case GCSenteratomic: {
1489 lu_mem work = propagateall(g); /* make sure gray list is empty */ 1490 lu_mem work = atomic(L); /* work is what was traversed by 'atomic' */
1490 work += atomic(L); /* work is what was traversed by 'atomic' */
1491 entersweep(L); 1491 entersweep(L);
1492 g->GCestimate = gettotalbytes(g); /* first estimate */; 1492 g->GCestimate = gettotalbytes(g); /* first estimate */;
1493 return work; 1493 return work;