code: func (c *FindCache) triggerBackoff() {
  	log.Infof("memory-idx: findCache invalidate-queue full. Disabling cache for %s", c.backoffTime.String())
  	findCacheBackoff.Inc()
  	c.backoff = true
  	time.AfterFunc(c.backoffTime, func() {
  		findCacheBackoff.Dec()
  		c.Lock()
  		c.backoff = false
  		c.Unlock()
  	})
  	c.cache = make(map[uint32]*lru.Cache)
  	// drain queue
  L:
  	for {
  		select {
  		case <-c.invalidateReqs:
  		default:
  			break L
  		}
  	}
  }
docs: // caller must hold lock!