Browse Source

Remove use of unreliable notify_id to determine if clients are on the current pool with the more extensive switching in place

master
Con Kolivas 10 years ago
parent
commit
4a3907d4e1
  1. 6
      src/stratifier.c

6
src/stratifier.c

@ -1161,7 +1161,7 @@ static void reconnect_clients(sdata_t *sdata)
ck_rlock(&sdata->instance_lock); ck_rlock(&sdata->instance_lock);
HASH_ITER(hh, sdata->stratum_instances, client, tmpclient) { HASH_ITER(hh, sdata->stratum_instances, client, tmpclient) {
if (client->proxyid == proxy->id && client->notify_id == proxy->parent->notify_id) if (client->proxyid == proxy->id)
continue; continue;
headroom--; headroom--;
reconnects++; reconnects++;
@ -1284,7 +1284,6 @@ static void update_subscribe(ckpool_t *ckp, const char *cmd)
LOGINFO("Got updated subscribe for proxy %d:%d", id, subid); LOGINFO("Got updated subscribe for proxy %d:%d", id, subid);
proxy = subproxy_by_id(sdata, id, subid); proxy = subproxy_by_id(sdata, id, subid);
proxy->notify_id = -1; /* Reset this */
dsdata = proxy->sdata; dsdata = proxy->sdata;
ck_wlock(&dsdata->workbase_lock); ck_wlock(&dsdata->workbase_lock);
@ -1420,8 +1419,6 @@ static void update_notify(ckpool_t *ckp, const char *cmd)
LOGNOTICE("Block hash on proxy %d changed to %s", id, dsdata->lastswaphash); LOGNOTICE("Block hash on proxy %d changed to %s", id, dsdata->lastswaphash);
} }
if (proxy->notify_id == -1)
proxy->notify_id = wb->id;
if (parent_proxy(proxy) && proxy == current_proxy(sdata)) if (parent_proxy(proxy) && proxy == current_proxy(sdata))
reconnect_clients(sdata); reconnect_clients(sdata);
clean |= new_block; clean |= new_block;
@ -2493,7 +2490,6 @@ static bool new_enonce1(ckpool_t *ckp, sdata_t *ckp_sdata, sdata_t *sdata, strat
enonce1u = &proxy->enonce1u; enonce1u = &proxy->enonce1u;
client->proxyid = proxy->id; client->proxyid = proxy->id;
client->subproxyid = proxy->subid; client->subproxyid = proxy->subid;
client->notify_id = proxy->parent->notify_id;
mutex_unlock(&ckp_sdata->proxy_lock); mutex_unlock(&ckp_sdata->proxy_lock);
if (proxy->clients >= proxy->max_clients) { if (proxy->clients >= proxy->max_clients) {

Loading…
Cancel
Save