]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/shared_cache.hpp: restructure clear()
authorSamuel Just <sjust@redhat.com>
Wed, 14 Jan 2015 16:29:58 +0000 (08:29 -0800)
committerSamuel Just <sjust@redhat.com>
Wed, 14 Jan 2015 16:29:58 +0000 (08:29 -0800)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/common/shared_cache.hpp

index 8c24780439f990f13f4c77b2b4559d764df1d47f..c4e65e467cb80ac312c4b41210937ebc1d15776d 100644 (file)
@@ -128,17 +128,14 @@ public:
 
   //clear all strong reference from the lru.
   void clear() {
-    VPtr val; // release any ref we have after we drop the lock
-    while (size > 0) {
+    while (true) {
+      VPtr val; // release any ref we have after we drop the lock
       Mutex::Locker l(lock);
-      if (size == 0) //check size again with lock
+      if (size == 0)
         break;
 
-      K key = lru.back().first;
-      if (weak_refs.count(key)) {
-       val = weak_refs[key].first.lock();
-      }
-      lru_remove(key);
+      val = lru.back().second;
+      lru_remove(lru.back().first);
     }
   }