Fix a deadlock in trove when evicting objects when we reach the maxSize used

This commit is contained in:
Harshavardhana 2015-06-06 16:02:48 -07:00
parent d78832fb39
commit 21916dc0a1

View File

@ -127,13 +127,13 @@ func (r *Cache) Set(key string, value []byte) bool {
return false return false
} }
// remove random key if only we reach the maxSize threshold // remove random key if only we reach the maxSize threshold
for key := range r.items {
for (r.currentSize + valueLen) > r.maxSize { for (r.currentSize + valueLen) > r.maxSize {
for key := range r.items {
r.doDelete(key) r.doDelete(key)
}
break break
} }
} }
}
r.items[key] = value r.items[key] = value
r.currentSize += valueLen r.currentSize += valueLen
r.updatedAt[key] = time.Now() r.updatedAt[key] = time.Now()