This call was already nonblocking since the driver opens the port with the
SERIAL_NONBLOCK flag. Only one byte is read. The case of 0 being returned
is not handled, but the call is only made if G_IO_IN occurred so in theory,
there should be a byte available. It might be wise to add handling for a
return of 0 nonetheless, as I'm not sure if this is always accurate.
if (revents == G_IO_IN) {
/* Serial data arrived. */
while(FLUKEDMM_BUFSIZE - devc->buflen - 1 > 0) {
- len = serial_read(serial, devc->buf + devc->buflen, 1);
+ len = serial_read_nonblocking(serial, devc->buf + devc->buflen, 1);
if (len < 1)
break;
devc->buflen++;