code: public FrameMetadata computeFrameMetaPass1() {
      MetaPass1[] tasks = new MetaPass1[_fr.numCols()];
      for(int i=0; i<tasks.length; ++i)
        tasks[i] = new MetaPass1(i,this);
      _isClassification = tasks[_response]._isClassification;
      MetaCollector.ParallelTasks metaCollector = new MetaCollector.ParallelTasks<>(tasks);
      long start = System.currentTimeMillis();
      H2O.submitTask(metaCollector).join();
      _userFeedback.info(Stage.FeatureAnalysis,
                         "Frame metadata analyzer pass 1 completed in " +
                         (System.currentTimeMillis()-start)/1000. +
                         " seconds");
      double sumTimeToMRTaskPerCol=0;
      ArrayList<Integer> dropCols=new ArrayList<>();
      for(MetaPass1 cmt: tasks) {
        if( cmt._colMeta._ignored ) dropCols.add(cmt._colMeta._idx);
        else                        _cols[cmt._colMeta._idx] = cmt._colMeta;
        sumTimeToMRTaskPerCol+= cmt._elapsed;
      }
      _userFeedback.info(Stage.FeatureAnalysis,
                         "Average time to analyze each column: " +
                         String.format("%.5f", (sumTimeToMRTaskPerCol/tasks.length) / 1000.0) +
                         " seconds");
      if( dropCols.size()>0 )
        dropIgnoredCols(intListToA(dropCols));
  
      return this;
    }
docs: blocking call to compute 1st pass of column metadata