public void decompile(Iterator<Function> iter, int functionCount) throws DecompileException {
		try {
			doDecompile(iter, functionCount);
		}
		catch (InterruptedException e) {
			Msg.error(this, "Problem with decompiler worker thread", e);
			throw new DecompileException("interrupted", e.getMessage());
		}
		catch (Exception t) {
			Msg.error(this, "Problem with decompiler worker thread", t);
			DecompileException decompileException =
				new DecompileException("execution", t.getMessage());
			decompileException.initCause(t);
			throw decompileException;
		}
	}
Run decompilation across multiple functions in a single program, distributing the task across
a specific number of threads
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/ParallelDecompileTask.java