From 12eff5d9ff46617f0067a1c57e2b61fc43afb3bb Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Tue, 21 May 2013 12:47:05 -0700 Subject: common/shared_cache.hpp: add clear() Clear clears a key/value from the cache. Signed-off-by: Samuel Just --- src/common/shared_cache.hpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/common/shared_cache.hpp b/src/common/shared_cache.hpp index 69a4c06dfbf..50da23a4f2f 100644 --- a/src/common/shared_cache.hpp +++ b/src/common/shared_cache.hpp @@ -85,6 +85,17 @@ public: assert(weak_refs.empty()); } + void clear(K key) { + VPtr val; // release any ref we have after we drop the lock + { + Mutex::Locker l(lock); + if (weak_refs.count(key)) { + val = weak_refs[key].lock(); + } + lru_remove(key); + } + } + void set_size(size_t new_size) { list to_release; { -- cgit v1.2.1