void operator()(GNode item, Galois::UserContext<GNode>& ctx) { if (!graph->containsNode(item, Galois::ALL)) return; Cavity* cavp = NULL; if (Version == detDisjoint) { bool used; LocalState* localState = (LocalState*) ctx.getLocalState(used); if (used) { localState->cav.update(item, ctx); return; } else { cavp = &localState->cav; } } if (Version == detDisjoint) { cavp->initialize(item); cavp->build(); cavp->computePost(); } else { Cavity cav(graph, ctx.getPerIterAlloc()); cav.initialize(item); cav.build(); cav.computePost(); if (Version == detPrefix) return; cav.update(item, ctx); } }