map<DNSName, unsigned int> counts;
unsigned int total=0;
{
- for (size_t idx = 0; idx < g_rings.getNumberOfShards(); idx++) {
- std::lock_guard<std::mutex> rl(g_rings.d_shards[idx]->respLock);
+ for (auto& shard : g_rings.d_shards) {
+ std::lock_guard<std::mutex> rl(shard->respLock);
if(!labels) {
- for(const auto& a : g_rings.d_shards[idx]->respRing) {
+ for(const auto& a : shard->respRing) {
if(!pred(a))
continue;
counts[a.name]++;
}
else {
unsigned int lab = *labels;
- for(auto a : g_rings.d_shards[idx]->respRing) {
+ for(auto a : shard->respRing) {
if(!pred(a))
continue;
cutoff.tv_sec -= seconds;
StatNode root;
- for (size_t idx = 0; idx < g_rings.getNumberOfShards(); idx++) {
- std::lock_guard<std::mutex> rl(g_rings.d_shards[idx]->respLock);
+ for (auto& shard : g_rings.d_shards) {
+ std::lock_guard<std::mutex> rl(shard->respLock);
- for(const auto& c : g_rings.d_shards[idx]->respRing) {
+ for(const auto& c : shard->respRing) {
if (now < c.when)
continue;
typedef std::unordered_map<string,string> entry_t;
vector<pair<unsigned int, entry_t > > ret;
- for (size_t idx = 0; idx < g_rings.getNumberOfShards(); idx++) {
- std::lock_guard<std::mutex> rl(g_rings.d_shards[idx]->respLock);
+ for (auto& shard : g_rings.d_shards) {
+ std::lock_guard<std::mutex> rl(shard->respLock);
entry_t e;
unsigned int count=1;
- for(const auto& c : g_rings.d_shards[idx]->respRing) {
+ for(const auto& c : shard->respRing) {
if(rcode && (rcode.get() != c.dh.rcode))
continue;
e["qname"]=c.name.toString();
counts.reserve(g_rings.getNumberOfResponseEntries());
- for (size_t idx = 0; idx < g_rings.getNumberOfShards(); idx++) {
- std::lock_guard<std::mutex> rl(g_rings.d_shards[idx]->respLock);
- for(const auto& c : g_rings.d_shards[idx]->respRing) {
+ for (auto& shard : g_rings.d_shards) {
+ std::lock_guard<std::mutex> rl(shard->respLock);
+ for(const auto& c : shard->respRing) {
if(seconds && c.when < cutoff)
continue;
counts.reserve(g_rings.getNumberOfQueryEntries());
- for (size_t idx = 0; idx < g_rings.getNumberOfShards(); idx++) {
- std::lock_guard<std::mutex> rl(g_rings.d_shards[idx]->queryLock);
- for(const auto& c : g_rings.d_shards[idx]->queryRing) {
+ for (auto& shard : g_rings.d_shards) {
+ std::lock_guard<std::mutex> rl(shard->queryLock);
+ for(const auto& c : shard->queryRing) {
if(seconds && c.when < cutoff)
continue;
if(now < c.when)
map<ComboAddress, unsigned int,ComboAddress::addressOnlyLessThan > counts;
unsigned int total=0;
{
- for (size_t idx = 0; idx < g_rings.getNumberOfShards(); idx++) {
- std::lock_guard<std::mutex> rl(g_rings.d_shards[idx]->queryLock);
- for(const auto& c : g_rings.d_shards[idx]->queryRing) {
+ for (auto& shard : g_rings.d_shards) {
+ std::lock_guard<std::mutex> rl(shard->queryLock);
+ for(const auto& c : shard->queryRing) {
counts[c.requestor]++;
total++;
}
map<DNSName, unsigned int> counts;
unsigned int total=0;
if(!labels) {
- for (size_t idx = 0; idx < g_rings.getNumberOfShards(); idx++) {
- std::lock_guard<std::mutex> rl(g_rings.d_shards[idx]->queryLock);
- for(const auto& a : g_rings.d_shards[idx]->queryRing) {
+ for (auto& shard : g_rings.d_shards) {
+ std::lock_guard<std::mutex> rl(shard->queryLock);
+ for(const auto& a : shard->queryRing) {
counts[a.name]++;
total++;
}
}
else {
unsigned int lab = *labels;
- for (size_t idx = 0; idx < g_rings.getNumberOfShards(); idx++) {
- std::lock_guard<std::mutex> rl(g_rings.d_shards[idx]->queryLock);
- for(auto a : g_rings.d_shards[idx]->queryRing) {
+ for (auto& shard : g_rings.d_shards) {
+ std::lock_guard<std::mutex> rl(shard->queryLock);
+ for(auto a : shard->queryRing) {
a.name.trimToLabels(lab);
counts[a.name]++;
total++;
size_t totalEntries = 0;
std::vector<boost::circular_buffer<Rings::Response>> rings;
rings.reserve(g_rings.getNumberOfShards());
- for (size_t idx = 0; idx < g_rings.getNumberOfShards(); idx++) {
+ for (auto& shard : g_rings.d_shards) {
{
- std::lock_guard<std::mutex> rl(g_rings.d_shards[idx]->respLock);
- rings[idx] = g_rings.d_shards[idx]->respRing;
+ std::lock_guard<std::mutex> rl(shard->respLock);
+ rings.push_back(shard->respRing);
}
- totalEntries += rings[idx].size();
+ totalEntries += rings.back().size();
}
vector<std::unordered_map<string, boost::variant<string, unsigned int> > > ret;
ret.reserve(totalEntries);
std::vector<Rings::Response> rr;
qr.reserve(g_rings.getNumberOfQueryEntries());
rr.reserve(g_rings.getNumberOfResponseEntries());
- for (size_t idx = 0; idx < g_rings.getNumberOfShards(); idx++) {
+ for (auto& shard : g_rings.d_shards) {
{
- std::lock_guard<std::mutex> rl(g_rings.d_shards[idx]->queryLock);
- for (const auto& entry : g_rings.d_shards[idx]->queryRing) {
+ std::lock_guard<std::mutex> rl(shard->queryLock);
+ for (const auto& entry : shard->queryRing) {
qr.push_back(entry);
}
}
{
- std::lock_guard<std::mutex> rl(g_rings.d_shards[idx]->respLock);
- for (const auto& entry : g_rings.d_shards[idx]->respRing) {
+ std::lock_guard<std::mutex> rl(shard->respLock);
+ for (const auto& entry : shard->respRing) {
rr.push_back(entry);
}
}
double totlat=0;
unsigned int size=0;
{
- for (size_t idx = 0; idx < g_rings.getNumberOfShards(); idx++) {
- std::lock_guard<std::mutex> rl(g_rings.d_shards[idx]->respLock);
- for(const auto& r : g_rings.d_shards[idx]->respRing) {
+ for (auto& shard : g_rings.d_shards) {
+ std::lock_guard<std::mutex> rl(shard->respLock);
+ for(const auto& r : shard->respRing) {
/* skip actively discovered timeouts */
if (r.usec == std::numeric_limits<unsigned int>::max())
continue;
size_t Rings::numDistinctRequestors()
{
std::set<ComboAddress, ComboAddress::addressOnlyLessThan> s;
- for (size_t idx = 0; idx < getNumberOfShards(); idx++) {
- std::lock_guard<std::mutex> rl(d_shards[idx]->queryLock);
- for(const auto& q : d_shards[idx]->queryRing) {
+ for (auto& shard : d_shards) {
+ std::lock_guard<std::mutex> rl(shard->queryLock);
+ for(const auto& q : shard->queryRing) {
s.insert(q.requestor);
}
}
{
map<ComboAddress, unsigned int, ComboAddress::addressOnlyLessThan> counts;
uint64_t total=0;
- for (size_t idx = 0; idx < getNumberOfShards(); idx++) {
+ for (auto& shard : d_shards) {
{
- std::lock_guard<std::mutex> rl(d_shards[idx]->queryLock);
- for(const auto& q : d_shards[idx]->queryRing) {
+ std::lock_guard<std::mutex> rl(shard->queryLock);
+ for(const auto& q : shard->queryRing) {
counts[q.requestor]+=q.size;
total+=q.size;
}
}
{
- std::lock_guard<std::mutex> rl(d_shards[idx]->respLock);
- for(const auto& r : d_shards[idx]->respRing) {
+ std::lock_guard<std::mutex> rl(shard->respLock);
+ for(const auto& r : shard->respRing) {
counts[r.requestor]+=r.size;
total+=r.size;
}