Don't count getwork delay when determining if shares are stale.
diff --git a/cgminer.c b/cgminer.c
index 2d789d8..2c94f06 100644
--- a/cgminer.c
+++ b/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)