@Override
		public void itemProcessed(QResult<I, R> result) {
			try {
				R r = result.getResult();
				if (r != null) {
					resultConsumer.accept(r);
				}
			}
			catch (Throwable t) {
				// This code is an asynchronous callback.  Handle the exception the same way as
				// the waitXyz() method do, which is to shutdown the queue.
				Msg.error(this, "Unexpected exception getting Decompiler result", t);
				queue.dispose();
			}

		}
Calls dispose on the queue being processed.  Further, the call will block for up to
{@code timeoutSeconds} while waiting for the queue to finish processing.

@param timeoutSeconds the number of seconds to wait for the disposed queue to finish
       processing
Ghidra/Features/Decompiler/src/main/java/ghidra/app/util/DecompilerConcurrentQ.java