1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-22 20:44:19 +00:00

Revert "Selectively discard all work items if a longpoll or stratum restart is received without a new block to work on."

This reverts commit 31f75098b51465c885dc36b49b29b2d82dd216e3.

Mistake, set in work_block already.
This commit is contained in:
Con Kolivas 2012-12-10 15:40:16 +11:00
parent 69494c12ed
commit c3fb1bcef5

View File

@ -3317,14 +3317,14 @@ static void wake_gws(void)
mutex_unlock(stgd_lock); mutex_unlock(stgd_lock);
} }
static void discard_stale(bool all) static void discard_stale(void)
{ {
struct work *work, *tmp; struct work *work, *tmp;
int stale = 0; int stale = 0;
mutex_lock(stgd_lock); mutex_lock(stgd_lock);
HASH_ITER(hh, staged_work, work, tmp) { HASH_ITER(hh, staged_work, work, tmp) {
if (all || stale_work(work, false)) { if (stale_work(work, false)) {
HASH_DEL(staged_work, work); HASH_DEL(staged_work, work);
discard_work(work); discard_work(work);
stale++; stale++;
@ -3362,7 +3362,7 @@ int restart_wait(unsigned int mstime)
return rc; return rc;
} }
static void restart_threads(bool all) static void restart_threads(void)
{ {
struct pool *cp = current_pool(); struct pool *cp = current_pool();
int i; int i;
@ -3372,7 +3372,7 @@ static void restart_threads(bool all)
pool_tset(cp, &cp->lagging); pool_tset(cp, &cp->lagging);
/* Discard staged work that is now stale */ /* Discard staged work that is now stale */
discard_stale(all); discard_stale();
for (i = 0; i < mining_threads; i++) for (i = 0; i < mining_threads; i++)
thr_info[i].work_restart = true; thr_info[i].work_restart = true;
@ -3494,13 +3494,13 @@ static bool test_work_current(struct work *work)
else else
applog(LOG_NOTICE, "New block detected on network"); applog(LOG_NOTICE, "New block detected on network");
} }
restart_threads(false); restart_threads();
} else if (work->longpoll) { } else if (work->longpoll) {
work->work_block = ++work_block; work->work_block = ++work_block;
if (work->pool == current_pool()) { if (work->pool == current_pool()) {
applog(LOG_NOTICE, "%sLONGPOLL from pool %d requested work restart", applog(LOG_NOTICE, "%sLONGPOLL from pool %d requested work restart",
work->gbt ? "GBT " : "", work->pool->pool_no); work->gbt ? "GBT " : "", work->pool->pool_no);
restart_threads(true); restart_threads();
} }
} }
work->longpoll = false; work->longpoll = false;
@ -4613,7 +4613,7 @@ static void *stratum_thread(void *userdata)
/* Only accept a work restart if this stratum /* Only accept a work restart if this stratum
* connection is from the current pool */ * connection is from the current pool */
if (pool == current_pool()) { if (pool == current_pool()) {
restart_threads(true); restart_threads();
applog(LOG_NOTICE, "Stratum from pool %d requested work restart", pool->pool_no); applog(LOG_NOTICE, "Stratum from pool %d requested work restart", pool->pool_no);
} }
} else } else
@ -5697,7 +5697,7 @@ static void *watchdog_thread(void __maybe_unused *userdata)
sleep(interval); sleep(interval);
discard_stale(false); discard_stale();
hashmeter(-1, &zero_tv, 0); hashmeter(-1, &zero_tv, 0);