From 8ebfaf896690c8be6832ccb32780c2b83630b357 Mon Sep 17 00:00:00 2001 From: Martin Ling Date: Wed, 6 May 2015 20:18:37 +0100 Subject: [PATCH] windows: restart_wait_if_needed(): Inline receive buffer check. This removes all the debug spam arising from calling sp_input_waiting(). --- serialport.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) 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 (ClearCommError(port->hdl, &errors, &comstat) == 0) + RETURN_FAIL("ClearCommError() failed"); - if (ret < 0) - RETURN_CODEVAL(ret); - - bytes_remaining = ret; - - if (bytes_remaining == 0) + if (comstat.cbInQue == 0) TRY(restart_wait(port)); RETURN_OK();