docs: public synchronized void close() throws Exception {
          //Stop the periodic flush as we will flush laster
          if (m_flush != null) {
              m_flush.cancel(false);
          }
          m_ses.shutdown();
  
          // Remove this VoltBulkLoader from the active set.
          synchronized (m_vblGlobals) {
              drain();
  
              List<VoltBulkLoader> loaderList = m_vblGlobals.m_TableNameToLoader.get(m_tableName);
              if (loaderList.size() == 1) {
                  m_vblGlobals.m_TableNameToLoader.remove(m_tableName);
  
                  // We are the last loader for this table,
                  // shutdown the PerPartitionTable instances
                  for (PerPartitionTable ppt : m_partitionTable) {
                      if (ppt != null) {
                          try {
                              ppt.shutdown();
                          } catch (Exception e) {
                              loaderLog.error("Failed to close processor for partition " + ppt.m_partitionId, e);
                          }
                      }
                  }
              } else {
                  loaderList.remove(this);
              }
          }
  
          assert m_outstandingRowCount.get() == 0;
      }