code: private void onCompleteHandler(StreamElementQueueEntry<?> streamElementQueueEntry) throws InterruptedException {
  		lock.lockInterruptibly();
  
  		try {
  			if (!queue.isEmpty() && queue.peek().isDone()) {
  				LOG.debug("Signal ordered stream element queue has completed head element.");
  				headIsCompleted.signalAll();
  			}
  		} finally {
  			lock.unlock();
  		}
  	}
docs: Check if the completed {@link StreamElementQueueEntry} is the current head. If this is the
  case, then notify the consumer thread about a new consumable entry.
  
  @param streamElementQueueEntry which has been completed
  @throws InterruptedException if the current thread is interrupted