code: func (c *Cache) Get(ctx context.Context, key interface{}) (interface{}, bool) {
  	now := clock.Now(ctx)
  
  	// We need a Read/Write lock here because if the entry is present, we are
  	// going to need to promote it "lru".
  	c.lock.Lock()
  	defer c.lock.Unlock()
  
  	if e := c.cache[key]; e != nil {
  		ent := e.Value.(*cacheEntry)
  		if !c.isEntryExpired(now, ent) {
  			c.lru.MoveToFront(e)
  			return ent.v, true
  		}
  		c.evictEntryLocked(e)
  	}
  
  	return nil, false
  }
docs: // Get fetches the element associated with the supplied key, updating its
  // recently-used standing.
  //
  // Get uses the cache read/write lock.