@Override
	public void incrementProgress(long incrementAmount) {
		currentProgress += incrementAmount;
		queue.progressChanged(id, item, currentProgress);
	}
This is the FutureTask that will be used to call the {@link QCallback} to work on
an item from a ConcurrentQ. It has been overridden to serve as an individual
TaskMonitor for the task as well as notifying the ConcurrentQ when a task
has been completed or cancelled so that additional tasks can be sent to the
thread pool.
<P>
If it was cancelled, then the done() callback will occur in the thread that cancelled this
task, otherwise it will be called by the thread from the thread pool that
executed the task.  Note that when this task is cancelled, it is up to the
executing thread to check if it was cancelled and terminate the task execution gracefully.
Even if the executing task never checks the cancelled and completes the task,
the return value will be ignored as this task has already been considered done
and any threads waiting on the return will have already been told it was cancelled.
<P>
On ConcurrentQs that only allow one task to run at a time, when a task is cancelled,
the next task can begin.  Most likely, the thread that was running the cancelled
task won't be free, and a new thread will be used to start running the next task.

@param <I> the input type 
@param <R> the output type
Ghidra/Framework/Generic/src/main/java/generic/concurrent/FutureTaskMonitor.java