Browse Source

Check for submit_stale before checking for work_restart
(to keep Kano happy)

Paul Sheppard 13 years ago
parent
commit
1ef52e0bac
2 changed files with 15 additions and 7 deletions
  1. 1 1
      cgminer.c
  2. 14 6
      driver-bitforce.c

+ 1 - 1
cgminer.c

@@ -126,7 +126,7 @@ bool use_curses = true;
 #else
 bool use_curses;
 #endif
-static bool opt_submit_stale = true;
+bool opt_submit_stale = true;
 static int opt_shares;
 static bool opt_fail_only;
 bool opt_autofan;

+ 14 - 6
driver-bitforce.c

@@ -343,20 +343,28 @@ static void biforce_thread_enable(struct thr_info *thr)
 	bitforce_init(bitforce);
 }
 
+extern bool opt_submit_stale;
+
 static uint64_t bitforce_scanhash(struct thr_info *thr, struct work *work, uint64_t __maybe_unused max_nonce)
 {
 	struct cgpu_info *bitforce = thr->cgpu;
+	bool submit_old = work->pool->submit_old;
 	bitforce->wait_ms = 0;
 	uint64_t ret;
 
 	if (ret = bitforce_send_work(thr, work)) {
-		while (bitforce->wait_ms < bitforce->sleep_ms) {
-			usleep(WORK_CHECK_INTERVAL_MS*1000);
-			bitforce->wait_ms += WORK_CHECK_INTERVAL_MS;
-			if (work_restart[thr->id].restart) {
-				applog(LOG_DEBUG, "BFL%i: Work restart, discarding after %dms", bitforce->device_id, bitforce->wait_ms);
-				return 1; //we have discarded all work; equivilent to 0 hashes done.
+		if(!opt_submit_stale || !submit_old) {
+			while (bitforce->wait_ms < bitforce->sleep_ms) {
+				usleep(WORK_CHECK_INTERVAL_MS*1000);
+				bitforce->wait_ms += WORK_CHECK_INTERVAL_MS;
+				if (work_restart[thr->id].restart) {
+					applog(LOG_DEBUG, "BFL%i: Work restart, discarding after %dms", bitforce->device_id, bitforce->wait_ms);
+					return 1; //we have discarded all work; equivilent to 0 hashes done.
+				}
 			}
+		} else {
+			usleep(bitforce->sleep_ms*1000);
+			bitforce->wait_ms = bitforce->sleep_ms;
 		}
 		ret = bitforce_get_result(thr, work);
 	}