From: Martin Ling Date: Wed, 6 May 2015 19:18:37 +0000 (+0100) Subject: windows: restart_wait_if_needed(): Inline receive buffer check. X-Git-Tag: libserialport-0.1.1~34 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=8ebfaf896690c8be6832ccb32780c2b83630b357;p=libserialport.git windows: restart_wait_if_needed(): Inline receive buffer check. This removes all the debug spam arising from calling sp_input_waiting(). --- diff --git a/serialport.c b/serialport.c index ab263a9..bae37ed 100644 --- a/serialport.c +++ b/serialport.c @@ -921,19 +921,16 @@ SP_API enum sp_return sp_nonblocking_write(struct sp_port *port, /* Restart wait operation if buffer was emptied. */ static enum sp_return restart_wait_if_needed(struct sp_port *port, unsigned int bytes_read) { - int ret, bytes_remaining; + DWORD errors; + COMSTAT comstat; if (bytes_read == 0) RETURN_OK(); - ret = sp_input_waiting(port); - - if (ret < 0) - RETURN_CODEVAL(ret); - - bytes_remaining = ret; + if (ClearCommError(port->hdl, &errors, &comstat) == 0) + RETURN_FAIL("ClearCommError() failed"); - if (bytes_remaining == 0) + if (comstat.cbInQue == 0) TRY(restart_wait(port)); RETURN_OK();