code: func (cache *Cache) get(name string) (*nameInfo, error) {
  	cache.RLock()
  	nmeInfo := cache.names[name]
  	cache.RUnlock()
  	if nmeInfo == nil {
  		cache.Lock()
  		defer cache.Unlock()
  		nmeInfo = cache.names[name]
  		if nmeInfo == nil {
  			entry, err := cache.backend.GetName(name)
  			if err != nil {
  				return nil, err
  			}
  			nmeInfo = &nameInfo{
  				entry: entry,
  			}
  			cache.names[name] = nmeInfo
  		}
  	}
  	return nmeInfo, nil
  }
docs: // Get the cache accountInfo item creating it if necessary