Browse Source

Merge commit 'c1ce0eb' into bfgminer

Luke Dashjr 13 years ago
parent
commit
43a52f3cf3
1 changed files with 14 additions and 0 deletions
  1. 14 0
      miner.c

+ 14 - 0
miner.c

@@ -3740,10 +3740,24 @@ static void *submit_work_thread(__maybe_unused void *userdata)
 		
 		
 		for (sws = write_sws; sws; sws = sws->next) {
 		for (sws = write_sws; sws; sws = sws->next) {
 			int fd = sws->work->pool->sock;
 			int fd = sws->work->pool->sock;
+			if (fd == INVSOCK) {
+				applog(LOG_WARNING, "Stratum pool %u died while share waiting to submit, discarding", sws->work->pool->pool_no);
+				submit_discard_share2("disconnect", sws->work);
+				--wip;
+				++tsreduce;
+				free_sws(sws);
+				continue;
+			}
 			FD_SET(fd, &wfds);
 			FD_SET(fd, &wfds);
 			if (fd > maxfd)
 			if (fd > maxfd)
 				maxfd = fd;
 				maxfd = fd;
 		}
 		}
+		if (tsreduce) {
+			mutex_lock(&submitting_lock);
+			total_submitting -= tsreduce;
+			mutex_unlock(&submitting_lock);
+			tsreduce = 0;
+		}
 		
 		
 		FD_SET(submit_waiting_notifier[0], &rfds);
 		FD_SET(submit_waiting_notifier[0], &rfds);
 		if (submit_waiting_notifier[0] > maxfd)
 		if (submit_waiting_notifier[0] > maxfd)