public static <R> List<R> decompileFunctions(QCallback<Function, R> callback,
			Collection<Function> functions, TaskMonitor monitor)
			throws InterruptedException, Exception {

		List<R> results =
			doDecompileFunctions(callback, functions.iterator(), functions.size(), monitor);
		return results;
	}
Decompile the given functions using multiple decompilers

@param callback the callback to be called for each item that is processed
@param functions the functions to decompile
@param monitor the task monitor
@return the list of client results
@throws InterruptedException if interrupted
@throws Exception if any other exception occurs
Ghidra/Features/Decompiler/src/main/java/ghidra/app/decompiler/parallel/ParallelDecompiler.java