code: func (cms *ConcurrentMergeScheduler) sync() {
  	cms.Lock()
  	defer cms.Unlock()
  
  	wg := new(sync.WaitGroup)
  	// no need to synchronize on numMergeRoutines
  	for i, limit := 0, int(cms.numMergeRoutines); i < limit; i++ {
  		wg.Add(1)
  		cms.chSync <- wg
  	}
  	wg.Wait()
  }
docs: /*
  Wait for any running merge threads to finish. This call is not
  Interruptible as used by Close()
  */