private void accumulateVertexCircuitsSwing(Circuits circuits, Map<V, Set<E>> results) {

		Map<V, Set<E>> circuitsByVertex = circuits.circuitsByVertex;
		Set<Entry<V, Set<E>>> entrySet = circuitsByVertex.entrySet();
		for (Entry<V, Set<E>> entry : entrySet) {
			V v = entry.getKey();

			if (!graph.containsVertex(v)) {
				V newVertex = findMatchingVertexSwing(v);
				if (newVertex == null) {
					// this can happen during grouping operations
					continue;
				}
				v = newVertex;
			}

			HashSet<E> newEdgeSet = new HashSet<>();
			Set<E> oldEdgeSet = entry.getValue();
			for (E e : oldEdgeSet) {
				E currentEdge = ensureEdgeUpToDateSwing(e);
				if (currentEdge != null) {
					// edge is null when the old edge endpoints have both been grouped
					newEdgeSet.add(currentEdge);
				}
			}

			results.put(v, newEdgeSet);
		}
	}
Signals to this path highlighter that it should stop all background jobs
Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/edge/VisualGraphPathHighlighter.java