code: func (bi *blockImporter) processHandler() {
  out:
  	for {
  		select {
  		case serializedBlock, ok := <-bi.processQueue:
  			// We're done when the channel is closed.
  			if !ok {
  				break out
  			}
  
  			bi.blocksProcessed++
  			bi.lastHeight++
  			imported, err := bi.processBlock(serializedBlock)
  			if err != nil {
  				bi.errChan <- err
  				break out
  			}
  
  			if imported {
  				bi.blocksImported++
  			}
  
  			bi.logProgress()
  
  		case <-bi.quit:
  			break out
  		}
  	}
  	bi.wg.Done()
  }
docs: // processHandler is the main handler for processing blocks.  This allows block
  // processing to take place in parallel with block reads from the import file.
  // It must be run as a goroutine.