MCPcopy Create free account
hub / github.com/F-Stack/f-stack / convergeephemerons

Function convergeephemerons

freebsd/contrib/openzfs/module/lua/lgc.c:593–608  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

591
592
593static void convergeephemerons (global_State *g) {
594 int changed;
595 do {
596 GCObject *w;
597 GCObject *next = g->ephemeron; /* get ephemeron list */
598 g->ephemeron = NULL; /* tables will return to this list when traversed */
599 changed = 0;
600 while ((w = next) != NULL) {
601 next = gco2t(w)->gclist;
602 if (traverseephemeron(g, gco2t(w))) { /* traverse marked some value? */
603 propagateall(g); /* propagate changes */
604 changed = 1; /* will have to revisit all ephemeron tables */
605 }
606 }
607 } while (changed);
608}
609
610/* }====================================================== */
611

Callers 1

atomicFunction · 0.85

Calls 2

traverseephemeronFunction · 0.85
propagateallFunction · 0.70

Tested by

no test coverage detected