public void cancelScheduledJobs() {
		List<FutureTaskMonitor<I, R>> tasksToBeCancelled = new ArrayList<>();
		lock.lock();
		try {
			tasksToBeCancelled.addAll(taskSet);
		}
		finally {
			lock.unlock();
		}
		for (FutureTaskMonitor<I, R> task : tasksToBeCancelled) {
			task.cancel(true);
		}

	}
Cancels the processing of currently scheduled items in this queue.  Any items that haven't
yet been scheduled on the threadPool are returned immediately from this call.  Items that
are currently being processed will be cancelled and those results will be available on the
next waitForResults() call and also if there is a QItemListener, it will be called with
the QResult.  There is no guarantee that scheduled tasks will terminate any time soon.  If
they check the isCancelled() state of their QMonitor, it will be true.  Setting the
interruptRunningTasks to true, will result in a thread interrupt to any currently running
task which might be useful if the task perform waiting operations like I/O.

@param interruptRunningTasks if true, an attempt will be made to interrupt any currently
processing thread.
@return a list of all items that have not yet been queued to the threadPool.
Ghidra/Framework/Generic/src/main/java/generic/concurrent/ConcurrentQ.java