PacketCache::PacketCache()
{
+ d_ops=0;
d_maps.resize(1024);
for(auto& mc : d_maps) {
pthread_rwlock_init(&mc.d_mut, 0);
#include "dnsparser.hh"
-ResponseStats::ResponseStats() : d_qtypecounters(65536)
+ResponseStats::ResponseStats() : d_qtypecounters(new std::atomic<unsigned long>[65536])
{
d_sizecounters.push_back(make_pair(20,0));
d_sizecounters.push_back(make_pair(40,0));
d_sizecounters.push_back(make_pair(std::numeric_limits<uint16_t>::max(),0));
}
-ResponseStats g_rs = ResponseStats();
+ResponseStats g_rs;
static bool pcomp(const pair<uint16_t, uint64_t>&a , const pair<uint16_t, uint64_t>&b)
{
{
map<uint16_t, uint64_t> ret;
uint64_t count;
- for(unsigned int i = 0 ; i < d_qtypecounters.size() ; ++i) {
+ for(unsigned int i = 0 ; i < 65535 ; ++i) {
count= d_qtypecounters[i];
if(count)
ret[i]=count;
string getQTypeReport();
private:
- vector<AtomicCounter> d_qtypecounters;
+ boost::scoped_array<std::atomic<unsigned long>> d_qtypecounters;
typedef vector<pair<uint16_t, uint64_t> > sizecounters_t;
sizecounters_t d_sizecounters;
};
}
ChunkedSigningPipe::ChunkedSigningPipe(const DNSName& signerName, bool mustSign, const string& servers, unsigned int workers)
- : d_queued(0), d_outstanding(0), d_numworkers(workers), d_submitted(0), d_signer(signerName),
+ : d_signed(0), d_queued(0), d_outstanding(0), d_numworkers(workers), d_submitted(0), d_signer(signerName),
d_maxchunkrecords(100), d_tids(d_numworkers), d_mustSign(mustSign), d_final(false)
{
d_rrsetToSign = new rrset_t;
bool submit(const DNSResourceRecord& rr);
chunk_t getChunk(bool final=false);
- AtomicCounter d_signed;
+ std::atomic<unsigned long> d_signed;
int d_queued;
int d_outstanding;
unsigned int getReady();
}
BOOST_AUTO_TEST_CASE(test_AtomicCounter) {
- AtomicCounter ac;
+ AtomicCounter ac(0);
++ac;
++ac;
BOOST_CHECK_EQUAL(ac, 2);