summaryrefslogtreecommitdiff
path: root/src/common/simple_cache.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/simple_cache.hpp')
-rw-r--r--src/common/simple_cache.hpp7
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) {