MCPcopy Create free account
hub / github.com/EmmyLua/EmmyLuaDebugger / retraversegrays

Function retraversegrays

third-party/lua-5.2.4/src/lgc.c:582–591  ·  view source on GitHub ↗

** retraverse all gray lists. Because tables may be reinserted in other ** lists when traversed, traverse the original lists to avoid traversing ** twice the same table (which is not wrong, but inefficient) */

Source from the content-addressed store, hash-verified

580** twice the same table (which is not wrong, but inefficient)
581*/
582static void retraversegrays (global_State *g) {
583 GCObject *weak = g->weak; /* save original lists */
584 GCObject *grayagain = g->grayagain;
585 GCObject *ephemeron = g->ephemeron;
586 g->weak = g->grayagain = g->ephemeron = NULL;
587 propagateall(g); /* traverse main gray list */
588 propagatelist(g, grayagain);
589 propagatelist(g, weak);
590 propagatelist(g, ephemeron);
591}
592
593
594static void convergeephemerons (global_State *g) {

Callers 1

atomicFunction · 0.85

Calls 2

propagatelistFunction · 0.85
propagateallFunction · 0.70

Tested by

no test coverage detected