code: func (t *timedCache) Get(key string) (interface{}, error) {
  	entry, err := t.getInternal(key)
  	if err != nil {
  		return nil, err
  	}
  
  	// Data is still not cached yet, cache it by getter.
  	if entry.data == nil {
  		entry.lock.Lock()
  		defer entry.lock.Unlock()
  
  		if entry.data == nil {
  			data, err := t.getter(key)
  			if err != nil {
  				return nil, err
  			}
  
  			entry.data = data
  		}
  	}
  
  	return entry.data, nil
  }
docs: // Get returns the requested item by key.