Browse Source

Icarus should timeout if it's greater than the timeout duration even if it's receiving data.

nfactor-troky
Con Kolivas 12 years ago
parent
commit
4ba6cba86a
  1. 18
      driver-icarus.c

18
driver-icarus.c

@ -349,6 +349,15 @@ static int icarus_get_nonce(struct cgpu_info *icarus, unsigned char *buf, struct @@ -349,6 +349,15 @@ static int icarus_get_nonce(struct cgpu_info *icarus, unsigned char *buf, struct
if (amt >= read_amount)
return ICA_NONCE_OK;
rc += SECTOMS(tdiff(&read_finish, &read_start));
if (rc >= read_time) {
if (amt > 0)
applog(LOG_DEBUG, "Icarus Read: Timeout reading for %d ms", rc);
else
applog(LOG_DEBUG, "Icarus Read: No data for %d ms", rc);
return ICA_NONCE_TIMEOUT;
}
if (amt > 0) {
buf += amt;
read_amount -= amt;
@ -356,15 +365,6 @@ static int icarus_get_nonce(struct cgpu_info *icarus, unsigned char *buf, struct @@ -356,15 +365,6 @@ static int icarus_get_nonce(struct cgpu_info *icarus, unsigned char *buf, struct
continue;
}
rc += SECTOMS(tdiff(&read_finish, &read_start));
if (rc >= read_time) {
if (opt_debug) {
applog(LOG_DEBUG,
"Icarus Read: No data in %d ms", rc);
}
return ICA_NONCE_TIMEOUT;
}
if (thr && thr->work_restart) {
if (opt_debug) {
applog(LOG_DEBUG,

Loading…
Cancel
Save