code: func (h *expiryHeap) Fix(entry *cacheEntryExpiry) {
  	idx := entry.HeapIndex
  	heap.Fix(h, idx)
  
  	// This is the edge case we handle: if the prev (idx) and current (HeapIndex)
  	// is zero, it means the head-of-line didn't change while the value
  	// changed. Notify to reset our expiry worker.
  	if idx == 0 && entry.HeapIndex == 0 {
  		h.notify()
  	}
  }
docs: // Identical to heap.Fix for this heap instance but will properly handle
  // the edge case where idx == 0 and no heap modification is necessary,
  // and still notify the NotifyCh.
  //
  // This is important for cache expiry since the expiry time may have been
  // extended and if we don't send a message to the NotifyCh then we'll never
  // reset the timer and the entry will be evicted early.