|
|
@ -2610,7 +2610,8 @@ static void discard_stale(void) |
|
|
|
|
|
|
|
|
|
|
|
if (stale) { |
|
|
|
if (stale) { |
|
|
|
applog(LOG_DEBUG, "Discarded %d stales that didn't match current hash", stale); |
|
|
|
applog(LOG_DEBUG, "Discarded %d stales that didn't match current hash", stale); |
|
|
|
queue_request(NULL, false); |
|
|
|
while (stale-- > 0) |
|
|
|
|
|
|
|
queue_request(NULL, false); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -3780,7 +3781,6 @@ bool queue_request(struct thr_info *thr, bool needed) |
|
|
|
static struct work *hash_pop(const struct timespec *abstime) |
|
|
|
static struct work *hash_pop(const struct timespec *abstime) |
|
|
|
{ |
|
|
|
{ |
|
|
|
struct work *work = NULL; |
|
|
|
struct work *work = NULL; |
|
|
|
bool queue = false; |
|
|
|
|
|
|
|
int rc = 0; |
|
|
|
int rc = 0; |
|
|
|
|
|
|
|
|
|
|
|
mutex_lock(stgd_lock); |
|
|
|
mutex_lock(stgd_lock); |
|
|
@ -3791,13 +3791,10 @@ static struct work *hash_pop(const struct timespec *abstime) |
|
|
|
work = staged_work; |
|
|
|
work = staged_work; |
|
|
|
HASH_DEL(staged_work, work); |
|
|
|
HASH_DEL(staged_work, work); |
|
|
|
work->pool->staged--; |
|
|
|
work->pool->staged--; |
|
|
|
if (HASH_COUNT(staged_work) < (unsigned int)mining_threads) |
|
|
|
|
|
|
|
queue = true; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
mutex_unlock(stgd_lock); |
|
|
|
mutex_unlock(stgd_lock); |
|
|
|
|
|
|
|
|
|
|
|
if (queue) |
|
|
|
queue_request(NULL, false); |
|
|
|
queue_request(NULL, false); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return work; |
|
|
|
return work; |
|
|
|
} |
|
|
|
} |
|
|
|