code: func (c *Cache) Close() error {
  	wasStopped := atomic.SwapUint32(&c.stopped, 1)
  	if wasStopped == 0 {
  		// First time only, close stop chan
  		close(c.stopCh)
  	}
  	return nil
  }
docs: // Close stops any background work and frees all resources for the cache.
  // Current Fetch requests are allowed to continue to completion and callers may
  // still access the current cache values so coordination isn't needed with
  // callers, however no background activity will continue. It's intended to close
  // the cache at agent shutdown so no further requests should be made, however
  // concurrent or in-flight ones won't break.