in groupcache.go [754:776]
func (c *cache) get(key string) (p payload, ok bool) {
c.mu.Lock()
defer c.mu.Unlock()
c.nget++
if c.lru == nil {
return
}
md := c.getMetadata(key)
if md == nil {
return
}
var ttl *time.Time
if ttl = md.ttl; ttl != nil && ttl.Before(time.Now().UTC()) {
return
}
vi, ok := c.lru.Get(key)
if !ok {
return
}
c.nhit++
p = newPayload(vi.(ByteView), ttl)
return p, true
}