Browse Source

Make sure the work gets attributed to the correct gpu.
Add an fflush to stderr to minimise garbled output when multiple threads write at once.

Con Kolivas 14 years ago
parent
commit
ffdffe77d3
2 changed files with 3 additions and 2 deletions
  1. 2 2
      cpu-miner.c
  2. 1 0
      util.c

+ 2 - 2
cpu-miner.c

@@ -826,13 +826,13 @@ static void *miner_thread(void *userdata)
 		uint64_t max64;
 		bool rc;
 
-		work.thr_id = thr_id;
 		/* obtain new work from internal workio thread */
 		if (unlikely(!get_work(&work))) {
 			applog(LOG_ERR, "work retrieval failed, exiting "
 				"mining thread %d", mythr->id);
 			goto out;
 		}
+		work.thr_id = thr_id;
 
 		hashes_done = 0;
 		gettimeofday(&tv_start, NULL);
@@ -1034,13 +1034,13 @@ static void *gpuminer_thread(void *userdata)
 			memset(res, 0, BUFFERSIZE);
 
 			gettimeofday(&tv_workstart, NULL);
-			work->thr_id = thr_id;
 			/* obtain new work from internal workio thread */
 			if (unlikely(!get_work(work))) {
 				applog(LOG_ERR, "work retrieval failed, exiting "
 					"gpu mining thread %d", mythr->id);
 				goto out;
 			}
+			work->thr_id = thr_id;
 
 			precalc_hash(&work->blk, (uint32_t *)(work->midstate), (uint32_t *)(work->data + 64));
 			work->blk.nonce = 0;

+ 1 - 0
util.c

@@ -95,6 +95,7 @@ void applog(int prio, const char *fmt, ...)
 		vfprintf(stderr, f, ap);	/* atomic write to stderr */
 	}
 	va_end(ap);
+	fflush(stderr);
 }
 
 static void databuf_free(struct data_buffer *db)