int ObjectCache::get(string& name, ObjectCacheInfo& info, uint32_t mask)
{
+ Mutex::Locker l(lock);
+
map<string, ObjectCacheEntry>::iterator iter = cache_map.find(name);
if (iter == cache_map.end()) {
RGW_LOG(10) << "cache get: name=" << name << " : miss" << dendl;
void ObjectCache::put(string& name, ObjectCacheInfo& info)
{
+ Mutex::Locker l(lock);
+
RGW_LOG(10) << "cache put: name=" << name << dendl;
map<string, ObjectCacheEntry>::iterator iter = cache_map.find(name);
if (iter == cache_map.end()) {
void ObjectCache::remove(string& name)
{
+ Mutex::Locker l(lock);
+
map<string, ObjectCacheEntry>::iterator iter = cache_map.find(name);
if (iter == cache_map.end())
return;
class ObjectCache {
std::map<string, ObjectCacheEntry> cache_map;
std::list<string> lru;
+ Mutex lock;
void touch_lru(string& name, std::list<string>::iterator& lru_iter);
void remove_lru(string& name, std::list<string>::iterator& lru_iter);
public:
- ObjectCache() { }
+ ObjectCache() : lock("ObjectCache") { }
int get(std::string& name, ObjectCacheInfo& bl, uint32_t mask);
void put(std::string& name, ObjectCacheInfo& bl);
void remove(std::string& name);