Check for work restart after the hashmeter is invoked for we lose the hashes otherwise contributed in the count.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
diff --git a/cgminer.c b/cgminer.c
index aae5991..59b2111 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -4101,22 +4101,6 @@ void *miner_thread(void *userdata)
gettimeofday(&getwork_start, NULL);
- if (unlikely(mythr->work_restart)) {
-
- /* Apart from device_thread 0, we stagger the
- * starting of every next thread to try and get
- * all devices busy before worrying about
- * getting work for their extra threads */
- if (!primary) {
- struct timespec rgtp;
-
- rgtp.tv_sec = 0;
- rgtp.tv_nsec = 250 * mythr->device_thread * 1000000;
- nanosleep(&rgtp, NULL);
- }
- break;
- }
-
if (unlikely(!hashes)) {
applog(LOG_ERR, "%s %d failure, disabling!", api->name, cgpu->device_id);
cgpu->deven = DEV_DISABLED;
@@ -4183,6 +4167,21 @@ void *miner_thread(void *userdata)
tv_lastupdate = tv_end;
}
+ if (unlikely(mythr->work_restart)) {
+ /* Apart from device_thread 0, we stagger the
+ * starting of every next thread to try and get
+ * all devices busy before worrying about
+ * getting work for their extra threads */
+ if (!primary) {
+ struct timespec rgtp;
+
+ rgtp.tv_sec = 0;
+ rgtp.tv_nsec = 250 * mythr->device_thread * 1000000;
+ nanosleep(&rgtp, NULL);
+ }
+ break;
+ }
+
if (unlikely(mythr->pause || cgpu->deven != DEV_ENABLED))
mt_disable(mythr, thr_id, api);