Browse Source

Don't start testing any pools with the watchpool thread if any of the test threads are still active.

nfactor-troky
Con Kolivas 12 years ago
parent
commit
e0196a3307
  1. 11
      cgminer.c
  2. 2
      miner.h

11
cgminer.c

@ -6135,6 +6135,13 @@ static void *watchpool_thread(void __maybe_unused *userdata) @@ -6135,6 +6135,13 @@ static void *watchpool_thread(void __maybe_unused *userdata)
if (pool->enabled == POOL_DISABLED)
continue;
/* Don't start testing any pools if the test threads
* from startup are still doing their first attempt. */
if (unlikely(pool->testing)) {
pthread_join(pool->test_thread, NULL);
pool->testing = false;
}
/* Test pool is idle once every minute */
if (pool->idle && now.tv_sec - pool->tv_idle.tv_sec > 30) {
gettimeofday(&pool->tv_idle, NULL);
@ -6991,10 +6998,10 @@ static void probe_pools(void) @@ -6991,10 +6998,10 @@ static void probe_pools(void)
int i;
for (i = 0; i < total_pools; i++) {
pthread_t *test_thread = malloc(sizeof(pthread_t));
struct pool *pool = pools[i];
pthread_create(test_thread, NULL, test_pool_thread, (void *)pool);
pool->testing = true;
pthread_create(&pool->test_thread, NULL, test_pool_thread, (void *)pool);
}
}

2
miner.h

@ -968,6 +968,8 @@ struct pool { @@ -968,6 +968,8 @@ struct pool {
struct thread_q *getwork_q;
pthread_t longpoll_thread;
pthread_t test_thread;
bool testing;
int curls;
pthread_cond_t cr_cond;

Loading…
Cancel
Save