void shutdown() {
		if (queue == null) {
			return;
		}

		//     Wait, at least a bit, for the tasks to drop out of their work (we could be
		//     getting called from a tool shutdown event, which means we don't want to block
		//     indefinitely, or even too long.

		// for now use 5 seconds, which seems long when closing a tool, but the user did
		// decide to exit without cancelling the task first, so it is reasonable to expect 
		// some delay
		queue.dispose(5);
	}
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