code: func (q *queue) ReserveBodies(p *peerConnection, count int) (*fetchRequest, bool, error) {
  	isNoop := func(header *types.Header) bool {
  		return header.TxHash == types.EmptyRootHash && header.UncleHash == types.EmptyUncleHash
  	}
  	q.lock.Lock()
  	defer q.lock.Unlock()
  
  	return q.reserveHeaders(p, count, q.blockTaskPool, q.blockTaskQueue, q.blockPendPool, q.blockDonePool, isNoop)
  }
docs: // ReserveBodies reserves a set of body fetches for the given peer, skipping any
  // previously failed downloads. Beside the next batch of needed fetches, it also
  // returns a flag whether empty blocks were queued requiring processing.