private CompletableFuture<VisualGraphPathHighlighter<V, E>.Circuits> lazyCreateCircuitFuture() {

		// lazy-load
		if (circuitFuture != null) {
			return circuitFuture;
		}

		Executor executor = getGraphExecutor();
		circuitFuture = CompletableFuture.supplyAsync(() -> {

			// this operation is fast enough that it shouldn't timeout, but just in case...
			TaskMonitor timeoutMonitor = TimeoutTaskMonitor.timeoutIn(ALGORITHM_TIMEOUT,
				TimeUnit.SECONDS, new TaskMonitorAdapter(true));

			Circuits circuits = calculateCircuitsAsync(timeoutMonitor);
			if (!circuits.complete) {
				setStatusTextSwing("Unable to calculate all loops - timed-out");
			}

			return circuits;
		}, executor);
		return circuitFuture;
	}
Sets the callback that signals when this path highlighter should not be performing any
work

@param pauser the callback that returns a boolean of true when this class should pause
       its work.
Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/edge/VisualGraphPathHighlighter.java