mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-11 07:17:58 +00:00
Check a pool is stable for >5 mins before switching back to it.
This commit is contained in:
parent
2d1ba75e11
commit
3b527f14d0
18
cgminer.c
18
cgminer.c
@ -5783,10 +5783,9 @@ out:
|
||||
|
||||
static void pool_resus(struct pool *pool)
|
||||
{
|
||||
if (pool_strategy == POOL_FAILOVER && pool->prio < cp_prio()) {
|
||||
applog(LOG_WARNING, "Pool %d %s alive", pool->pool_no, pool->rpc_url);
|
||||
switch_pools(NULL);
|
||||
} else
|
||||
if (pool_strategy == POOL_FAILOVER && pool->prio < cp_prio())
|
||||
applog(LOG_WARNING, "Pool %d %s alive, testing stability", pool->pool_no, pool->rpc_url);
|
||||
else
|
||||
applog(LOG_INFO, "Pool %d %s alive", pool->pool_no, pool->rpc_url);
|
||||
}
|
||||
|
||||
@ -6864,6 +6863,16 @@ static void *watchpool_thread(void __maybe_unused *userdata)
|
||||
if (pool_active(pool, true) && pool_tclear(pool, &pool->idle))
|
||||
pool_resus(pool);
|
||||
}
|
||||
|
||||
/* Only switch pools if the failback pool has been
|
||||
* alive for more than 5 minutes to prevent
|
||||
* intermittently failing pools from being used. */
|
||||
if (!pool->idle && pool_strategy == POOL_FAILOVER && pool->prio < cp_prio() &&
|
||||
now.tv_sec - pool->tv_idle.tv_sec > 300) {
|
||||
applog(LOG_WARNING, "Pool %d %s stable for 5 mins",
|
||||
pool->pool_no, pool->rpc_url);
|
||||
switch_pools(NULL);
|
||||
}
|
||||
}
|
||||
|
||||
if (pool_strategy == POOL_ROTATE && now.tv_sec - rotate_tv.tv_sec > 60 * opt_rotate_period) {
|
||||
@ -7229,6 +7238,7 @@ static void *test_pool_thread(void *arg)
|
||||
applog(LOG_NOTICE, "Switching to pool %d %s - first alive pool", pool->pool_no, pool->rpc_url);
|
||||
|
||||
pool_resus(pool);
|
||||
switch_pools(NULL);
|
||||
} else
|
||||
pool_died(pool);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user