public Collection<QResult<I, R>> waitForResults() throws InterruptedException {
		lock.lockInterruptibly();
		try {
			tracker.waitUntilDone();
			Collection<QResult<I, R>> returnValue = resultList;
			resultList = new LinkedList<>();
			return returnValue;
		}
		finally {
			lock.unlock();
		}
	}
Waits until all scheduled items have been completed or cancelled and returns a list of
QResults if this queue has been told to collect results.
<P>
You can still call this method to wait for items to be processed, even if you did not
specify to collect results.  In that case, the list returned will be empty.

@return the list of QResult objects that have all the results of the completed jobs.
@throws InterruptedException if this call was interrupted--Note:  this interruption only
            happens if the calling thread cannot acquire the lock.  If the thread is
            interrupted while waiting for results, then it will try again.
Ghidra/Framework/Generic/src/main/java/generic/concurrent/ConcurrentQ.java