From b66e0241f70d0053f094205e1d1fedc4a811988a Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Sat, 4 Aug 2012 09:52:18 +1000 Subject: [PATCH] Queue an extra request whenever staged work drops below mining thread count in hash_pop. --- cgminer.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cgminer.c b/cgminer.c index 557461da..6f667004 100644 --- a/cgminer.c +++ b/cgminer.c @@ -3784,6 +3784,7 @@ out: static struct work *hash_pop(const struct timespec *abstime) { struct work *work = NULL; + bool queue = false; int rc = 0; mutex_lock(stgd_lock); @@ -3795,9 +3796,14 @@ static struct work *hash_pop(const struct timespec *abstime) HASH_DEL(staged_work, work); if (work->clone) --staged_extras; + if (HASH_COUNT(staged_work) < mining_threads) + queue = true; } mutex_unlock(stgd_lock); + if (queue) + queue_request(NULL, false); + return work; }