1.what's the difference between luaC_barrierf and luaC_barrierback? i know both of them are used to keep the invariant, but why are there 2 functions?
2.in both of them, there is an assert "lua_assert(g->gcstate != GCSfinalize && g->gcstate != GCSpause);", i know the GCPause statu is unbreakable, but it's not true for GCSfinalize, so why we can assert it here?