Commit 359635a8cf2d960cbcf8ba1a9f14cc2c484f0e7f

Con Kolivas 2012-06-24T18:44:09

Only roll enough work to have one staged work for each mining thread.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
diff --git a/cgminer.c b/cgminer.c
index d9c09e1..43fc206 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -3636,10 +3636,9 @@ static struct work *clone_work(struct work *work)
 {
 	struct work *work_clone;
 	bool cloned = false;
-	int rolled = 0;
 
 	work_clone = make_clone(work);
-	while (rolled++ < mining_threads && can_roll(work) && should_roll(work)) {
+	while (requests_staged() < mining_threads && can_roll(work) && should_roll(work)) {
 		applog(LOG_DEBUG, "Pushing rolled converted work to stage thread");
 		if (unlikely(!stage_work(work_clone))) {
 			cloned = false;