Check for work restart after disable in the hash queued work loop since it may be a long time before we re-enable a device.
diff --git a/cgminer.c b/cgminer.c
index f2840f0..debea35 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -5910,13 +5910,13 @@ void hash_queued_work(struct thr_info *mythr)
memcpy(&tv_start, &tv_end, sizeof(struct timeval));
}
+ if (unlikely(mythr->pause || cgpu->deven != DEV_ENABLED))
+ mt_disable(mythr, thr_id, drv);
+
if (unlikely(mythr->work_restart)) {
flush_queue(cgpu);
drv->flush_work(cgpu);
}
-
- if (unlikely(mythr->pause || cgpu->deven != DEV_ENABLED))
- mt_disable(mythr, thr_id, drv);
}
}