Browse Source

Load balancing puts more into the current pool if there are disabled pools. Fix.

nfactor-troky
Con Kolivas 13 years ago
parent
commit
afcff07012
  1. 25
      main.c

25
main.c

@ -929,22 +929,29 @@ out_nofree: @@ -929,22 +929,29 @@ out_nofree:
static const char *rpc_req =
"{\"method\": \"getwork\", \"params\": [], \"id\":0}\r\n";
static int rotating_pool;
/* Select any active pool in a rotating fashion when loadbalance is chosen */
static inline struct pool *select_pool(void)
{
if (pool_strategy == POOL_LOADBALANCE) {
struct pool *pool;
static int rotating_pool;
struct pool *pool, *cp;
cp = current_pool();
if (pool_strategy != POOL_LOADBALANCE)
pool = cp;
else
pool = NULL;
rotating_pool++;
if (rotating_pool >= total_pools)
while (!pool) {
if (++rotating_pool >= total_pools)
rotating_pool = 0;
pool = pools[rotating_pool];
if (!pool->idle && pool->enabled)
return pools[rotating_pool];
if ((!pool->idle && pool->enabled) || pool == cp)
break;
pool = NULL;
}
return current_pool();
return pool;
}
static bool get_upstream_work(struct work *work)

Loading…
Cancel
Save