Check for restart before buffering more reads in Icarus.
diff --git a/driver-icarus.c b/driver-icarus.c
index 1c5881b..c9dc041 100644
--- a/driver-icarus.c
+++ b/driver-icarus.c
@@ -358,13 +358,6 @@ static int icarus_get_nonce(struct cgpu_info *icarus, unsigned char *buf, struct
return ICA_NONCE_TIMEOUT;
}
- if (amt > 0) {
- buf += amt;
- read_amount -= amt;
- first = false;
- continue;
- }
-
if (thr && thr->work_restart) {
if (opt_debug) {
applog(LOG_DEBUG,
@@ -372,6 +365,12 @@ static int icarus_get_nonce(struct cgpu_info *icarus, unsigned char *buf, struct
}
return ICA_NONCE_RESTART;
}
+
+ if (amt > 0) {
+ buf += amt;
+ read_amount -= amt;
+ first = false;
+ }
}
}