#include "cachecleaner.hh"
#include "utility.hh"
-NegCache::NegCache(size_t mapsCount) : d_maps(mapsCount)
+NegCache::NegCache(size_t mapsCount) :
+ d_maps(mapsCount)
{
}
locks.push_back(lock_t(new lock(map)));
}
}
- catch(...) {
+ catch (...) {
}
}
class NegCache : public boost::noncopyable
{
public:
-
NegCache(size_t mapsCount = 1024);
~NegCache();
struct MapCombo
{
MapCombo() {}
- MapCombo(const MapCombo &) = delete;
- MapCombo & operator=(const MapCombo &) = delete;
+ MapCombo(const MapCombo&) = delete;
+ MapCombo& operator=(const MapCombo&) = delete;
negcache_t d_map;
mutable std::mutex mutex;
std::atomic<uint64_t> d_entriesCount{0};
vector<MapCombo> d_maps;
- MapCombo& getMap(const DNSName &qname)
+ MapCombo& getMap(const DNSName& qname)
{
return d_maps[qname.hash() % d_maps.size()];
}
- const MapCombo& getMap(const DNSName &qname) const
+ const MapCombo& getMap(const DNSName& qname) const
{
return d_maps[qname.hash() % d_maps.size()];
}
+
public:
- struct lock {
- lock(const MapCombo& map) : m(map.mutex)
+ struct lock
+ {
+ lock(const MapCombo& map) :
+ m(map.mutex)
{
if (!m.try_lock()) {
m.lock();
}
map.d_acquired_count++;
}
- ~lock() {
+ ~lock()
+ {
m.unlock();
}
+
private:
- std::mutex &m;
+ std::mutex& m;
};
-
};