Commit 94e636a906f96eba238ecaec83dea88c600b2c69

Con Kolivas 2013-06-21T17:02:13

Only update hashmeter if we have done hashes or haven't updated longer than the log interval, fixing a us/ms error.

diff --git a/cgminer.c b/cgminer.c
index bdb0be2..22dfad5 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -5890,7 +5890,8 @@ static void hash_sole_work(struct thr_info *mythr)
 
 			timersub(tv_end, &tv_lastupdate, &diff);
 			/* Update the hashmeter at most 5 times per second */
-			if (diff.tv_sec > 0 || diff.tv_usec > 200) {
+			if ((hashes_done && (diff.tv_sec > 0 || diff.tv_usec > 200000)) ||
+			    diff.tv_sec >= opt_log_interval) {
 				hashmeter(thr_id, &diff, hashes_done);
 				hashes_done = 0;
 				copy_time(&tv_lastupdate, tv_end);
@@ -6078,7 +6079,8 @@ void hash_queued_work(struct thr_info *mythr)
 		cgtime(&tv_end);
 		timersub(&tv_end, &tv_start, &diff);
 		/* Update the hashmeter at most 5 times per second */
-		if (diff.tv_sec > 0 || diff.tv_usec > 200000) {
+		if ((hashes_done && (diff.tv_sec > 0 || diff.tv_usec > 200000)) ||
+		    diff.tv_sec >= opt_log_interval) {
 			hashmeter(thr_id, &diff, hashes_done);
 			hashes_done = 0;
 			copy_time(&tv_start, &tv_end);