summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaker Fernandes Pinheiro <daker.fernandes.pinheiro@intel.com>2016-11-29 17:48:59 -0300
committerDaker Pinheiro <dakerfp@gmail.com>2016-12-23 14:46:26 -0300
commit80d38305e5f6af955ef73afc2e288f31818a5b8b (patch)
tree83ae7644b1b7e0b2640ef0068518d2004d85d8d1
parentd092608c065831f1984ac9d332ca5b2c95a11f57 (diff)
downloadgolang-groupcache-80d38305e5f6af955ef73afc2e288f31818a5b8b.tar.gz
Add Clear methods to lru cache
-rw-r--r--lru/lru.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/lru/lru.go b/lru/lru.go
index cdfe299..532cc45 100644
--- a/lru/lru.go
+++ b/lru/lru.go
@@ -119,3 +119,15 @@ func (c *Cache) Len() int {
}
return c.ll.Len()
}
+
+// Clear purges all stored items from the cache.
+func (c *Cache) Clear() {
+ if c.OnEvicted != nil {
+ for _, e := range c.cache {
+ kv := e.Value.(*entry)
+ c.OnEvicted(kv.key, kv.value)
+ }
+ }
+ c.ll = nil
+ c.cache = nil
+}