Make expiry on should_roll to 2/3 time instead of share duration since some hardware will have very fast share times.
diff --git a/cgminer.c b/cgminer.c
index bb46f53..24dc144 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -2290,18 +2290,16 @@ static bool stale_work(struct work *work, bool share);
static inline bool should_roll(struct work *work)
{
struct timeval now;
- double share_time;
time_t expiry;
if (work->pool != current_pool() && pool_strategy != POOL_LOADBALANCE)
return false;
- share_time = total_secs * mining_threads / (total_accepted + 1);
if (work->rolltime > opt_scantime)
expiry = work->rolltime;
else
expiry = opt_scantime;
- expiry -= share_time;
+ expiry = expiry * 2 / 3;
/* We shouldn't roll if we're unlikely to get one shares' duration
* work out of doing so */