code: func (f *Fetcher) rescheduleFetch(fetch *time.Timer) {
  	// Short circuit if no blocks are announced
  	if len(f.announced) == 0 {
  		return
  	}
  	// Otherwise find the earliest expiring announcement
  	earliest := time.Now()
  	for _, announces := range f.announced {
  		if earliest.After(announces[0].time) {
  			earliest = announces[0].time
  		}
  	}
  	fetch.Reset(arriveTimeout - time.Since(earliest))
  }
docs: // rescheduleFetch resets the specified fetch timer to the next announce timeout.