Browse Source

Don't count getwork delay when determining if shares are stale.

Con Kolivas 13 years ago
parent
commit
b5757d124b
1 changed files with 7 additions and 5 deletions
  1. 7 5
      cgminer.c

+ 7 - 5
cgminer.c

@@ -2159,7 +2159,6 @@ static bool stale_work(struct work *work, bool share)
 	struct timeval now;
 	time_t work_expiry;
 	struct pool *pool;
-	int getwork_delay;
 
 	if (work->mandatory)
 		return false;
@@ -2173,10 +2172,13 @@ static bool stale_work(struct work *work, bool share)
 	pool = work->pool;
 	/* Factor in the average getwork delay of this pool, rounding it up to
 	 * the nearest second */
-	getwork_delay = pool->cgminer_pool_stats.getwork_wait_rolling * 5 + 1;
-	work_expiry -= getwork_delay;
-	if (unlikely(work_expiry < 5))
-		work_expiry = 5;
+	if (!share) {
+		int getwork_delay = pool->cgminer_pool_stats.getwork_wait_rolling * 5 + 1;
+
+		work_expiry -= getwork_delay;
+		if (unlikely(work_expiry < 5))
+			work_expiry = 5;
+	}
 
 	gettimeofday(&now, NULL);
 	if ((now.tv_sec - work->tv_staged.tv_sec) >= work_expiry)