docs: public void shutdown() {
          buffer.clear();
  
  
          if (thread != null)
              thread.interrupt();
          try {
              // Shutdown() should be a synchronous operation since the iterator is reset after shutdown() is
              // called in AsyncLabelAwareIterator.reset().
              if (thread != null)
                  thread.join();
          } catch (InterruptedException e) {
              Thread.currentThread().interrupt();
              throw new RuntimeException(e);
          }
          thread.shutdown();
          buffer.clear();
      }