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 {