Commit d2c1a6bd6bf4c18aea08228a8c461ec330a57c17

Con Kolivas 2012-06-24T21:56:36

Revert "Make sure to have at least one staged work item when deciding whether to queue another request or not and dec queued in free work not discard work." This reverts commit c8601722752bcc6d3db7efd0063f7f2d7f2f7d2a.

diff --git a/cgminer.c b/cgminer.c
index 1e85437..483331a 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -1892,17 +1892,8 @@ static struct work *make_work(void)
 	return work;
 }
 
-static inline void dec_queued(void)
-{
-	if (likely(total_queued > 0))
-		total_queued--;
-}
-
 static void free_work(struct work *work)
 {
-	if (!work->clone)
-		dec_queued();
-
 	free(work);
 }
 
@@ -2386,8 +2377,17 @@ static inline void inc_queued(void)
 	total_queued++;
 }
 
+static inline void dec_queued(void)
+{
+	if (likely(total_queued > 0))
+		total_queued--;
+}
+
 static void discard_work(struct work *work)
 {
+	if (!work->clone)
+		dec_queued();
+
 	if (!work->clone && !work->rolls && !work->mined) {
 		if (work->pool)
 			work->pool->discarded_work++;
@@ -3496,7 +3496,7 @@ static bool queue_request(struct thr_info *thr, bool needed)
 	struct workio_cmd *wc;
 
 	if ((total_queued >= opt_queue && rs >= mining_threads) ||
-		(total_queued >= mining_threads && rs))
+		total_queued >= mining_threads)
 			return true;
 
 	/* fill out work request message */