diff options
Diffstat (limited to 'src/common/simple_cache.hpp')
-rw-r--r-- | src/common/simple_cache.hpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/common/simple_cache.hpp b/src/common/simple_cache.hpp index 7d062351888..60919fd9731 100644 --- a/src/common/simple_cache.hpp +++ b/src/common/simple_cache.hpp @@ -50,17 +50,16 @@ public: pinned.insert(make_pair(key, val)); } - void clear_pinned() { + void clear_pinned(K e) { Mutex::Locker l(lock); for (typename map<K, V>::iterator i = pinned.begin(); - i != pinned.end(); - ++i) { + i != pinned.end() && i->first <= e; + pinned.erase(i++)) { if (!contents.count(i->first)) _add(i->first, i->second); else lru.splice(lru.begin(), lru, contents[i->first]); } - pinned.clear(); } void set_size(size_t new_size) { |