Crawler thread should know amount of threads for correct sleep
This commit is contained in:
parent
a5cb7553a2
commit
69a942b4e9
1 changed files with 3 additions and 4 deletions
7
main.cpp
7
main.cpp
|
@ -11,8 +11,6 @@
|
|||
#include "bitcoin.h"
|
||||
#include "db.h"
|
||||
|
||||
#define NTHREADS 24
|
||||
|
||||
using namespace std;
|
||||
|
||||
bool fTestNet = false;
|
||||
|
@ -126,6 +124,7 @@ extern "C" {
|
|||
CAddrDb db;
|
||||
|
||||
extern "C" void* ThreadCrawler(void* data) {
|
||||
int *nThreads=(int*)data;
|
||||
do {
|
||||
std::vector<CServiceResult> ips;
|
||||
int wait = 5;
|
||||
|
@ -133,7 +132,7 @@ extern "C" void* ThreadCrawler(void* data) {
|
|||
int64 now = time(NULL);
|
||||
if (ips.empty()) {
|
||||
wait *= 1000;
|
||||
wait += rand() % (500 * NTHREADS);
|
||||
wait += rand() % (500 * *nThreads);
|
||||
Sleep(wait);
|
||||
continue;
|
||||
}
|
||||
|
@ -422,7 +421,7 @@ int main(int argc, char **argv) {
|
|||
pthread_attr_setstacksize(&attr_crawler, 0x20000);
|
||||
for (int i=0; i<opts.nThreads; i++) {
|
||||
pthread_t thread;
|
||||
pthread_create(&thread, &attr_crawler, ThreadCrawler, NULL);
|
||||
pthread_create(&thread, &attr_crawler, ThreadCrawler, &opts.nThreads);
|
||||
}
|
||||
pthread_attr_destroy(&attr_crawler);
|
||||
printf("done\n");
|
||||
|
|
Loading…
Reference in a new issue