docs: public void shutdown() {
  		running = false;
  
  		// wake up all blocking calls on the queue
  		unassignedPartitionsQueue.close();
  
  		// We cannot call close() on the KafkaConsumer, because it will actually throw
  		// an exception if a concurrent call is in progress
  
  		// this wakes up the consumer if it is blocked handing over records
  		handover.wakeupProducer();
  
  		// this wakes up the consumer if it is blocked in a kafka poll
  		synchronized (consumerReassignmentLock) {
  			if (consumer != null) {
  				consumer.wakeup();
  			} else {
  				// the consumer is currently isolated for partition reassignment;
  				// set this flag so that the wakeup state is restored once the reassignment is complete
  				hasBufferedWakeup = true;
  			}
  		}
  	}