Commit f570ffcf75764398c9682c310ad7420acd7593c2

Jeff Garzik 2011-01-29T00:47:48

Code movement: move second hash time sampling to main miner loop

diff --git a/cpu-miner.c b/cpu-miner.c
index 648f4d9..dc611ad 100644
--- a/cpu-miner.c
+++ b/cpu-miner.c
@@ -230,18 +230,13 @@ out:
 	free(hexstr);
 }
 
-static void hashmeter(int thr_id, struct timeval *tv_start,
+static void hashmeter(int thr_id, const struct timeval *diff,
 		      unsigned long hashes_done)
 {
-	struct timeval tv_end, diff;
 	double khashes, secs;
 
-	gettimeofday(&tv_end, NULL);
-
-	timeval_subtract(&diff, &tv_end, tv_start);
-
 	khashes = hashes_done / 1000.0;
-	secs = (double)diff.tv_sec + ((double)diff.tv_usec / 1000000.0);
+	secs = (double)diff->tv_sec + ((double)diff->tv_usec / 1000000.0);
 
 	if (!opt_quiet)
 		printf("HashMeter(%d): %lu hashes, %.2f khash/sec\n",
@@ -259,7 +254,7 @@ static void *miner_thread(void *thr_id_int)
 	while (1) {
 		struct work work __attribute__((aligned(128)));
 		unsigned long hashes_done;
-		struct timeval tv_start;
+		struct timeval tv_start, tv_end, diff;
 		json_t *val;
 		bool rc;
 
@@ -342,7 +337,10 @@ static void *miner_thread(void *thr_id_int)
 			return NULL;
 		}
 
-		hashmeter(thr_id, &tv_start, hashes_done);
+		gettimeofday(&tv_end, NULL);
+		timeval_subtract(&diff, &tv_end, &tv_start);
+
+		hashmeter(thr_id, &diff, hashes_done);
 
 		/* if nonce found, submit work */
 		if (rc)