docs: public void onCompleteHandler(StreamElementQueueEntry<?> streamElementQueueEntry) throws InterruptedException {
  		lock.lockInterruptibly();
  
  		try {
  			if (firstSet.remove(streamElementQueueEntry)) {
  				completedQueue.offer(streamElementQueueEntry);
  
  				while (firstSet.isEmpty() && firstSet != lastSet) {
  					firstSet = uncompletedQueue.poll();
  
  					Iterator<StreamElementQueueEntry<?>> it = firstSet.iterator();
  
  					while (it.hasNext()) {
  						StreamElementQueueEntry<?> bufferEntry = it.next();
  
  						if (bufferEntry.isDone()) {
  							completedQueue.offer(bufferEntry);
  							it.remove();
  						}
  					}
  				}
  
  				LOG.debug("Signal unordered stream element queue has completed entries.");
  				hasCompletedEntries.signalAll();
  			}
  		} finally {
  			lock.unlock();
  		}
  	}