Commit 626ae10d7c90c8a21897343758e5dd0b00016950

Con Kolivas 2011-08-14T02:33:55

Make sure to give work items a starting time only once when they're staged.

diff --git a/main.c b/main.c
index 2588351..6ca1aa9 100644
--- a/main.c
+++ b/main.c
@@ -1582,8 +1582,12 @@ static void *stage_thread(void *userdata)
 		}
 
 		test_work_current(work);
-		if (!work->cloned && !work->clone)
+		/* Stage date the work only once since it may be rolled
+		 * or cloned and be staged again */
+		if (!work->staged) {
 			gettimeofday(&work->tv_staged, NULL);
+			work->staged = true;
+		}
 
 		if (opt_debug)
 			applog(LOG_DEBUG, "Pushing work to getwork queue");
diff --git a/miner.h b/miner.h
index de35033..e9b83a6 100644
--- a/miner.h
+++ b/miner.h
@@ -345,6 +345,7 @@ struct work {
 	bool		clone;
 	bool		cloned;
 	bool		rolltime;
+	bool		staged;
 };
 
 enum cl_kernel {