GCSpause
if (g->gcstate == GCSpause) /* end of cycle? */
case GCSpause: {
g->gcstate = GCSpause; /* finish collection */
luaC_runtilstate(L, bitmask(GCSpause)); /* run complete (minor) cycle */
} while (debt > -GCSTEPSIZE && g->gcstate != GCSpause);
if (g->gcstate == GCSpause)
for (i = 0; g->tobefnz && (i < GCFINALIZENUM || g->gcstate == GCSpause); i++)
luaC_runtilstate(L, bitmask(GCSpause));
luaC_runtilstate(L, ~bitmask(GCSpause)); /* start new collection */
luaC_runtilstate(L, bitmask(GCSpause)); /* run entire collection */
lua_assert(g->gcstate != GCSpause);
g->gcstate = GCSpause;