|
|
@ -6598,16 +6598,20 @@ static void *test_pool_thread(void *arg) |
|
|
|
if (pool_active(pool, false)) { |
|
|
|
if (pool_active(pool, false)) { |
|
|
|
pool_tset(pool, &pool->lagging); |
|
|
|
pool_tset(pool, &pool->lagging); |
|
|
|
pool_tclear(pool, &pool->idle); |
|
|
|
pool_tclear(pool, &pool->idle); |
|
|
|
|
|
|
|
bool first_pool = false; |
|
|
|
|
|
|
|
|
|
|
|
cg_wlock(&control_lock); |
|
|
|
cg_wlock(&control_lock); |
|
|
|
if (!pools_active) { |
|
|
|
if (!pools_active) { |
|
|
|
currentpool = pool; |
|
|
|
currentpool = pool; |
|
|
|
if (pool->pool_no != 0) |
|
|
|
if (pool->pool_no != 0) |
|
|
|
applog(LOG_NOTICE, "Switching to pool %d %s - first alive pool", pool->pool_no, pool->rpc_url); |
|
|
|
first_pool = true; |
|
|
|
pools_active = true; |
|
|
|
pools_active = true; |
|
|
|
} |
|
|
|
} |
|
|
|
cg_wunlock(&control_lock); |
|
|
|
cg_wunlock(&control_lock); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (unlikely(first_pool)) |
|
|
|
|
|
|
|
applog(LOG_NOTICE, "Switching to pool %d %s - first alive pool", pool->pool_no, pool->rpc_url); |
|
|
|
|
|
|
|
|
|
|
|
pool_resus(pool); |
|
|
|
pool_resus(pool); |
|
|
|
} else |
|
|
|
} else |
|
|
|
pool_died(pool); |
|
|
|
pool_died(pool); |
|
|
|