public QResult<I, R> waitForNextResult() throws InterruptedException {
		if (!collectResults) {
			throw new IllegalStateException(
				"Can't wait for next result when not collecting results");
		}
		lock.lockInterruptibly();
		try {
			if (resultList.isEmpty()) {
				if (isEmpty()) {
					return null;
				}

				tracker.waitForNext();
			}
			return resultList.pop();
		}
		finally {
			lock.unlock();
		}
	}
Wait until at least one result is available and then return the first result.

@return the first available result
@throws InterruptedException if interrupted while waiting for a result
@throws IllegalStateException if this queue has been set to not collect results
        (see the constructor).
Ghidra/Framework/Generic/src/main/java/generic/concurrent/ConcurrentQ.java