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 "bitcoin.h"
|
||||||
#include "db.h"
|
#include "db.h"
|
||||||
|
|
||||||
#define NTHREADS 24
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
bool fTestNet = false;
|
bool fTestNet = false;
|
||||||
|
@ -126,6 +124,7 @@ extern "C" {
|
||||||
CAddrDb db;
|
CAddrDb db;
|
||||||
|
|
||||||
extern "C" void* ThreadCrawler(void* data) {
|
extern "C" void* ThreadCrawler(void* data) {
|
||||||
|
int *nThreads=(int*)data;
|
||||||
do {
|
do {
|
||||||
std::vector<CServiceResult> ips;
|
std::vector<CServiceResult> ips;
|
||||||
int wait = 5;
|
int wait = 5;
|
||||||
|
@ -133,7 +132,7 @@ extern "C" void* ThreadCrawler(void* data) {
|
||||||
int64 now = time(NULL);
|
int64 now = time(NULL);
|
||||||
if (ips.empty()) {
|
if (ips.empty()) {
|
||||||
wait *= 1000;
|
wait *= 1000;
|
||||||
wait += rand() % (500 * NTHREADS);
|
wait += rand() % (500 * *nThreads);
|
||||||
Sleep(wait);
|
Sleep(wait);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -422,7 +421,7 @@ int main(int argc, char **argv) {
|
||||||
pthread_attr_setstacksize(&attr_crawler, 0x20000);
|
pthread_attr_setstacksize(&attr_crawler, 0x20000);
|
||||||
for (int i=0; i<opts.nThreads; i++) {
|
for (int i=0; i<opts.nThreads; i++) {
|
||||||
pthread_t thread;
|
pthread_t thread;
|
||||||
pthread_create(&thread, &attr_crawler, ThreadCrawler, NULL);
|
pthread_create(&thread, &attr_crawler, ThreadCrawler, &opts.nThreads);
|
||||||
}
|
}
|
||||||
pthread_attr_destroy(&attr_crawler);
|
pthread_attr_destroy(&attr_crawler);
|
||||||
printf("done\n");
|
printf("done\n");
|
||||||
|
|
Loading…
Reference in a new issue