code: func (q *queue) Reset() {
  	q.lock.Lock()
  	defer q.lock.Unlock()
  
  	q.closed = false
  	q.mode = FullSync
  
  	q.headerHead = common.Hash{}
  	q.headerPendPool = make(map[string]*fetchRequest)
  
  	q.blockTaskPool = make(map[common.Hash]*types.Header)
  	q.blockTaskQueue.Reset()
  	q.blockPendPool = make(map[string]*fetchRequest)
  	q.blockDonePool = make(map[common.Hash]struct{})
  
  	q.receiptTaskPool = make(map[common.Hash]*types.Header)
  	q.receiptTaskQueue.Reset()
  	q.receiptPendPool = make(map[string]*fetchRequest)
  	q.receiptDonePool = make(map[common.Hash]struct{})
  
  	q.resultCache = make([]*fetchResult, blockCacheItems)
  	q.resultOffset = 0
  }
docs: // Reset clears out the queue contents.