code: func (b *LRUCache) GetNotStaleNow(key string, now time.Time) (value interface{}, ok bool) {
  	b.lock.Lock()
  	defer b.lock.Unlock()
  
  	e := b.table[key]
  	if e == nil {
  		return nil, false
  	}
  
  	if e.expire.Before(now) {
  		// Remove entries expired for more than a graceful period
  		if b.ExpireGracePeriod == 0 || e.expire.Sub(now) > b.ExpireGracePeriod {
  			b.removeEntry(e)
  		}
  		return nil, false
  	}
  
  	b.touchEntry(e)
  	return e.value, true
  }
docs: // GetNotStaleNow gets a key from the cache, make sure it's not stale. Update its
  // LRU score. O(log(n)) if the item is expired.