Browse Source

Only loop once through avalon_parse_results, but do so after timeouts as well.

Con Kolivas 13 years ago
parent
commit
be3224f933
1 changed files with 3 additions and 3 deletions
  1. 3 3
      driver-avalon.c

+ 3 - 3
driver-avalon.c

@@ -685,6 +685,9 @@ static void *avalon_get_results(void *userdata)
 		ssize_t ret;
 		fd_set rd;
 
+		if (offset >= (int)AVALON_READ_SIZE)
+			avalon_parse_results(avalon, info, thr, readbuf, &offset);
+
 		if (unlikely(offset + rsize >= AVALON_READBUF_SIZE)) {
 			/* This should never happen */
 			applog(LOG_ERR, "Avalon readbuf overflow, resetting buffer");
@@ -715,9 +718,6 @@ static void *avalon_get_results(void *userdata)
 
 		memcpy(&readbuf[offset], buf, ret);
 		offset += ret;
-
-		while (offset >= (int)AVALON_READ_SIZE)
-			avalon_parse_results(avalon, info, thr, readbuf, &offset);
 	}
 	return NULL;
 }