private synchronized void maybeRunNextJob() {
		String methodName = "maybeRunNextJob()";
		trace(methodName);

		if (isShortcutting) {
			trace("\t" + methodName + " shortcutting the queue - not running the next job " +
				currentJob);
			return;
		}

		trace("\t" + methodName + " currentJob: " + currentJob);
		if (currentJob != null) {
			trace("\t" + methodName + " is it finished?: " + currentJob.isFinished());
			// sanity check!
			if (currentJob.isFinished()) {
				throw new IllegalStateException("The following job did not call jobFinished() " +
					"after performing its work: " + currentJob);
			}

			// do nothing if a job is running
			trace("\t" + methodName + " not running another job; current job is not finished");
			return;
		}

		GraphJob nextJob = queue.poll();
		if (nextJob != null) {
			trace("\t" + methodName + " setting currentJob to: " + nextJob + " and last job: " +
				currentJob);
			currentJob = nextJob;
			currentJob.execute(this);
			return;
		}

		if (finalJob != null) {
			trace("\t" + methodName + " setting currentJob to final job: " + finalJob +
				" and last job: " + currentJob);
			currentJob = finalJob;
			finalJob = null;
			currentJob.execute(this);
		}
	}
Attempts to shortcut the currently running job, if there is one

@return false if there is a currently running job that cannot be shortcut
Ghidra/Framework/Graph/src/main/java/ghidra/graph/job/GraphJobRunner.java