code: @Override
      protected void searchDisposed() {
          // release thread pool
          pool.shutdown();        
          // dispose contained searches
          searches.forEach(s -> s.dispose());
          // dispose super
          super.searchDisposed();
      }
docs: When disposing a basic parallel search, each of the searches that have been added to the parallel
  algorithm are disposed and the thread pool used for concurrent search execution is released.