Browse Source

Queue an extra request whenever staged work drops below mining thread count in hash_pop.

Con Kolivas 13 years ago
parent
commit
b66e0241f7
1 changed files with 6 additions and 0 deletions
  1. 6 0
      cgminer.c

+ 6 - 0
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;
 }