code: func (s *Sync) schedule(req *request) {
  	// If we're already requesting this node, add a new reference and stop
  	if old, ok := s.requests[req.hash]; ok {
  		old.parents = append(old.parents, req.parents...)
  		return
  	}
  	// Schedule the request for future retrieval
  	s.queue.Push(req.hash, int64(req.depth))
  	s.requests[req.hash] = req
  }
docs: // schedule inserts a new state retrieval request into the fetch queue. If there
  // is already a pending request for this node, the new request will be discarded
  // and only a parent reference added to the old one.