}
ChunkedSigningPipe::ChunkedSigningPipe(const string& signerName, bool mustSign, const string& servers, unsigned int workers)
- : d_queued(0), d_outstanding(0), d_signer(signerName), d_maxchunkrecords(100), d_numworkers(workers), d_tids(d_numworkers),
- d_mustSign(mustSign), d_final(false), d_submitted(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;
d_chunks.push_back(vector<DNSResourceRecord>()); // load an empty chunk
~ChunkedSigningPipe();
bool submit(const DNSResourceRecord& rr);
chunk_t getChunk(bool final=false);
- int d_queued;
+
AtomicCounter d_signed;
+ int d_queued;
int d_outstanding;
unsigned int getReady();
private:
void worker(int n, int fd);
static void* helperWorker(void* p);
+
+ unsigned int d_numworkers;
+ int d_submitted;
+
rrset_t* d_rrsetToSign;
std::deque< std::vector<DNSResourceRecord> > d_chunks;
string d_signer;
std::vector<int> d_sockets;
std::set<int> d_eof;
- unsigned int d_numworkers;
vector<pthread_t> d_tids;
bool d_mustSign;
bool d_final;
- int d_submitted;
};
#endif