private void fillOpenProcessingSlots() {
		while (!queue.isEmpty() && getInProgressCount() < maxInProgress) {
			I item = queue.remove();
			tracker.itemStarted();
			CallbackCallable qCall = new CallbackCallable(item);
			FutureTaskMonitor<I, R> task =
				new FutureTaskMonitor<>(this, qCall, item, tracker.getNextID());
			qCall.setFutureTask(task);
			taskSet.add(task);
			notifyTaskStarted(task);
			threadPool.submit(task);
		}
	}
Cancels all running tasks and disposes of the internal thread pool if it is a private
pool.
Ghidra/Framework/Generic/src/main/java/generic/concurrent/ConcurrentQ.java