template <typename S, typename T>
void moveCacheItemToFrontOrBack(T& collection, typename T::iterator& iter, bool front)
{
- typedef typename T::template index<S>::type sequence_t;
- sequence_t& sidx = collection.template get<S>();
- typename sequence_t::iterator si = collection.template project<S>(iter);
- if (front)
- sidx.relocate(sidx.begin(), si); // at the beginning of the delete queue
- else
- sidx.relocate(sidx.end(), si); // back
+ auto& sidx = collection.template get<S>();
+ auto siter = collection.template project<S>(iter);
+ if (front) {
+ sidx.relocate(sidx.begin(), siter); // at the beginning of the delete queue
+ }
+ else {
+ sidx.relocate(sidx.end(), siter); // back
+ }
}
template <typename S, typename T>
uint64_t totErased = 0;
time_t now = time(nullptr);
- for (auto& mc : maps) {
- auto map = mc.d_map.write_lock();
+ for (auto& shard : maps) {
+ auto map = shard.d_map.write_lock();
uint64_t lookAt = (map->size() + 9) / 10; // Look at 10% of this shard
uint64_t erased = 0;
{
uint64_t delcount = 0;
- for (auto& mc : maps) {
- auto map = mc.d_map.write_lock();
+ for (auto& shard : maps) {
+ auto map = shard.d_map.write_lock();
delcount += map->size();
map->clear();
}
std::string prefix(match);
prefix.resize(prefix.size() - 1);
DNSName dprefix(prefix);
- for (auto& mc : maps) {
- auto map = mc.d_map.write_lock();
+ for (auto& shard : maps) {
+ auto map = shard.d_map.write_lock();
auto& idx = boost::multi_index::get<N>(*map);
auto iter = idx.lower_bound(dprefix);
auto start = iter;
}
template <typename N, typename T>
-uint64_t purgeExactLockedCollection(T& mc, const DNSName& qname)
+uint64_t purgeExactLockedCollection(T& shard, const DNSName& qname)
{
uint64_t delcount = 0;
- auto map = mc.d_map.write_lock();
+ auto map = shard.d_map.write_lock();
auto& idx = boost::multi_index::get<N>(*map);
auto range = idx.equal_range(qname);
if (range.first != range.second) {
}
template <typename S, typename Index>
-bool lruReplacingInsert(Index& i, const typename Index::value_type& x)
+bool lruReplacingInsert(Index& index, const typename Index::value_type& value)
{
- auto inserted = i.insert(x);
+ auto inserted = index.insert(value);
if (!inserted.second) {
- moveCacheItemToBack<S>(i, inserted.first);
- i.replace(inserted.first, x);
+ moveCacheItemToBack<S>(index, inserted.first);
+ index.replace(inserted.first, value);
return false;
}
return true;
{
public:
ReadWriteLock() = default;
+ ~ReadWriteLock() = default;
ReadWriteLock(const ReadWriteLock& rhs) = delete;
ReadWriteLock(ReadWriteLock&& rhs) = delete;
+ ReadWriteLock& operator=(ReadWriteLock&&) = delete;
ReadWriteLock& operator=(const ReadWriteLock& rhs) = delete;
std::shared_mutex& getLock()
{
}
+ ~ReadLock() = default;
ReadLock(const ReadLock& rhs) = delete;
ReadLock& operator=(const ReadLock& rhs) = delete;
+ ReadLock& operator=(ReadLock&&) = delete;
+
ReadLock(ReadLock&& rhs) noexcept :
d_lock(std::move(rhs.d_lock))
{
{
}
+ ~WriteLock() = default;
WriteLock(const WriteLock& rhs) = delete;
WriteLock& operator=(const WriteLock& rhs) = delete;
+ WriteLock& operator=(WriteLock&&) = delete;
+
WriteLock(WriteLock&& rhs) noexcept :
d_lock(std::move(rhs.d_lock))
{
{
}
+ ~TryReadLock() = default;
TryReadLock(const TryReadLock& rhs) = delete;
+ TryReadLock(TryReadLock&&) = delete;
TryReadLock& operator=(const TryReadLock& rhs) = delete;
+ TryReadLock& operator=(TryReadLock&&) = delete;
- bool gotIt() const
+ [[nodiscard]] bool gotIt() const
{
return d_lock.owns_lock();
}
{
}
+ ~TryWriteLock() = default;
TryWriteLock(const TryWriteLock& rhs) = delete;
+ TryWriteLock(TryWriteLock&&) = delete;
TryWriteLock& operator=(const TryWriteLock& rhs) = delete;
+ TryWriteLock& operator=(TryWriteLock&&) = delete;
- bool gotIt() const
+ [[nodiscard]] bool gotIt() const
{
return d_lock.owns_lock();
}
return d_lock.owns_lock();
}
- bool owns_lock() const noexcept
+ [[nodiscard]] bool owns_lock() const noexcept
{
return d_lock.owns_lock();
}
return d_lock.owns_lock();
}
- bool owns_lock() const noexcept
+ [[nodiscard]] bool owns_lock() const noexcept
{
return d_lock.owns_lock();
}
return d_lock.owns_lock();
}
- bool owns_lock() const noexcept
+ [[nodiscard]] bool owns_lock() const noexcept
{
return d_lock.owns_lock();
}