From 2480cf23cc48f70319dd73857cc2988e19c24015 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Wed, 15 Aug 2012 10:54:38 +1000 Subject: [PATCH] Don't try to get bitforce temperature if we're polling for a result to minimise the chance of interleaved responses. --- driver-bitforce.c | 11 +++++++++-- miner.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/driver-bitforce.c b/driver-bitforce.c index bf7c0390..ca6b8b03 100644 --- a/driver-bitforce.c +++ b/driver-bitforce.c @@ -347,6 +347,11 @@ static bool bitforce_get_temp(struct cgpu_info *bitforce) if (!fdDev) return false; + /* Do not try to get the temperature if we're polling for a result to + * minimise the change of interleaved results */ + if (bitforce->polling) + return true; + /* It is not critical getting temperature so don't get stuck if we * can't grab the mutex here */ if (mutex_trylock(&bitforce->device_mutex)) @@ -627,9 +632,11 @@ static int64_t bitforce_scanhash(struct thr_info *thr, struct work *work, int64_ bitforce->wait_ms = sleep_time; } - if (send_ret) + if (send_ret) { + bitforce->polling = true; ret = bitforce_get_result(thr, work); - else + bitforce->polling = false; + } else ret = -1; if (ret == -1) { diff --git a/miner.h b/miner.h index 26d628bb..f87612ab 100644 --- a/miner.h +++ b/miner.h @@ -329,6 +329,7 @@ struct cgpu_info { unsigned int avg_wait_d; uint32_t nonces; bool nonce_range; + bool polling; #endif pthread_mutex_t device_mutex;