diff options
Diffstat (limited to 'src/common/shared_cache.hpp')
-rw-r--r-- | src/common/shared_cache.hpp | 11 |
1 files changed, 11 insertions, 0 deletions
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<VPtr> to_release; { |