Commit f70577b09731b665e46779fe3449edb1d9c20afa

Con Kolivas 2012-06-19T04:38:49

Merge pull request #229 from luke-jr/modminer_primary modminer: Don't delay 2nd+ FPGAs during work restart

diff --git a/cgminer.c b/cgminer.c
index 1540c1b..5dbfc76 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -3829,6 +3829,8 @@ void *miner_thread(void *userdata)
 	const time_t request_interval = opt_scantime * 2 / 3 ? : 1;
 	unsigned const long request_nonce = MAXTHREADS / 3 * 2;
 	bool requested = false;
+	const bool primary = (!mythr->device_thread) || mythr->primary_thread;
+
 	pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
 
 	gettimeofday(&getwork_start, NULL);
@@ -3910,7 +3912,7 @@ void *miner_thread(void *userdata)
 				 * starting of every next thread to try and get
 				 * all devices busy before worrying about
 				 * getting work for their extra threads */
-				if (mythr->device_thread) {
+				if (!primary) {
 					struct timespec rgtp;
 
 					rgtp.tv_sec = 0;
diff --git a/driver-modminer.c b/driver-modminer.c
index 0afce2d..2d5a1b6 100644
--- a/driver-modminer.c
+++ b/driver-modminer.c
@@ -318,6 +318,8 @@ modminer_fpga_init(struct thr_info *thr)
 
 	mutex_unlock(&modminer->device_mutex);
 
+	thr->primary_thread = true;
+
 	return true;
 }
 
diff --git a/miner.h b/miner.h
index 08e19c6..00430db 100644
--- a/miner.h
+++ b/miner.h
@@ -391,6 +391,7 @@ struct thread_q {
 struct thr_info {
 	int		id;
 	int		device_thread;
+	bool		primary_thread;
 
 	pthread_t	pth;
 	struct thread_q	*q;