Browse Source

cgminer.c: more work on multi-works

Xiangfu 13 years ago
parent
commit
3e2e52e4ce
1 changed files with 10 additions and 11 deletions
  1. 10 11
      cgminer.c

+ 10 - 11
cgminer.c

@@ -5360,12 +5360,12 @@ void *miner_thread(void *userdata)
 	while (1) {
 		mythr->work_restart = false;
 #ifdef USE_AVALON
+		int i;
 		struct work *work[AVALON_GET_WORK_COUNT];
-		int i = 0;
-		while (i < AVALON_GET_WORK_COUNT) {
+
+		for (i = 0; i < AVALON_GET_WORK_COUNT; i++) {
 			work[i] = get_work(mythr, thr_id);
 			work[i]->blk.nonce = 0;
-			i++;
 		}
 #else
 		work = get_work(mythr, thr_id);
@@ -5374,13 +5374,13 @@ void *miner_thread(void *userdata)
 		cgpu->new_work = true;
 		cgpu->max_hashes = 0;
 		gettimeofday(&tv_workstart, NULL);
-#ifndef USE_AVALON
-		if (api->prepare_work && !api->prepare_work(mythr, work)) {
-			applog(LOG_ERR, "work prepare failed, exiting "
-				"mining thread %d", thr_id);
-			break;
+		for (i = 0; i < AVALON_GET_WORK_COUNT; i++) {
+			if (api->prepare_work && !api->prepare_work(mythr, work[i])) {
+				applog(LOG_ERR, "work prepare failed, exiting "
+				       "mining thread %d", thr_id);
+				break;
+			}
 		}
-#endif
 		do {
 			gettimeofday(&tv_start, NULL);
 
@@ -5501,8 +5501,7 @@ void *miner_thread(void *userdata)
 			sdiff.tv_sec = sdiff.tv_usec = 0;
 #ifdef USE_AVALON
 		} while (!abandon_work(work[0], &wdiff, cgpu->max_hashes));
-		i = 0;
-		while (i < AVALON_GET_WORK_COUNT)
+		for (i = 0; i < AVALON_GET_WORK_COUNT; i++)
 			free_work(work[i++]);
 #else
 		} while (!abandon_work(work, &wdiff, cgpu->max_hashes));