LRUExpireCache#Get requires write lock

This commit is contained in:
Takashi Kusumi 2016-09-08 00:22:07 +09:00
parent dc529a03b1
commit 0bd475676b

View File

@ -25,7 +25,7 @@ import (
type LRUExpireCache struct { type LRUExpireCache struct {
cache *lru.Cache cache *lru.Cache
lock sync.RWMutex lock sync.Mutex
} }
func NewLRUExpireCache(maxSize int) *LRUExpireCache { func NewLRUExpireCache(maxSize int) *LRUExpireCache {
@ -46,8 +46,8 @@ func (c *LRUExpireCache) Add(key lru.Key, value interface{}, ttl time.Duration)
} }
func (c *LRUExpireCache) Get(key lru.Key) (interface{}, bool) { func (c *LRUExpireCache) Get(key lru.Key) (interface{}, bool) {
c.lock.RLock() c.lock.Lock()
defer c.lock.RUnlock() defer c.lock.Unlock()
e, ok := c.cache.Get(key) e, ok := c.cache.Get(key)
if !ok { if !ok {
return nil, false return nil, false