From be3224f933299d778fae708889d89040ee1b0f19 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Sun, 26 May 2013 01:33:32 +1000 Subject: [PATCH] Only loop once through avalon_parse_results, but do so after timeouts as well. --- driver-avalon.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/driver-avalon.c b/driver-avalon.c index 69b04ef8..86f8520d 100644 --- a/driver-avalon.c +++ b/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; }