summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-05-09 16:29:28 -0700
committerSamuel Just <sam.just@inktank.com>2013-05-09 17:28:15 -0700
commitb274c8a0b21ec87a744bbb4c27e6c21277c7d794 (patch)
tree93e0f64322a384796ea5c698516a9dc2a90e0902
parent69b64826b762f713d88072a5c3a3e54fa1e0995b (diff)
downloadceph-b274c8a0b21ec87a744bbb4c27e6c21277c7d794.tar.gz
common/sharedptr_registry.hpp: add remove
remove() can be used to clear an entry before all of its references are removed. Signed-off-by: Samuel Just <sam.just@inktank.com>
-rw-r--r--src/common/sharedptr_registry.hpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/common/sharedptr_registry.hpp b/src/common/sharedptr_registry.hpp
index e155015ef60..8669d063a79 100644
--- a/src/common/sharedptr_registry.hpp
+++ b/src/common/sharedptr_registry.hpp
@@ -100,6 +100,12 @@ public:
return retval;
}
+ void remove(const K &key) {
+ Mutex::Locker l(lock);
+ contents.erase(key);
+ cond.Signal();
+ }
+
template<class A>
VPtr lookup_or_create(const K &key, const A &arg) {
Mutex::Locker l(lock);