]> sigrok.org Git - libsigrok.git/commitdiff
gmc-mh-1x-2x: Mark serial read calls as nonblocking.
authorMartin Ling <redacted>
Sun, 21 Sep 2014 17:36:00 +0000 (18:36 +0100)
committerUwe Hermann <redacted>
Wed, 24 Sep 2014 21:30:30 +0000 (23:30 +0200)
These calls were already nonblocking since the driver opens the port with the
SERIAL_NONBLOCK flag. They only read one byte. A return value of zero is not
handled, but should not occur in theory due to the G_IO_IN check. It might be
good to add handling of a zero return anyway, since I'm not sure if this is
always accurate.

src/hardware/gmc-mh-1x-2x/protocol.c

index 06cae38b07d18f59f5de3e52fb1b192d637ac77d..e6de8d52d7229c691ab8d46051afb26388ee19b7 100644 (file)
@@ -1107,7 +1107,7 @@ SR_PRIV int gmc_mh_1x_2x_receive_data(int fd, int revents, void *cb_data)
 
        if (revents == G_IO_IN) { /* Serial data arrived. */
                while (GMC_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;
                        buf = *(devc->buf + devc->buflen);
@@ -1201,7 +1201,7 @@ SR_PRIV int gmc_mh_2x_receive_data(int fd, int revents, void *cb_data)
 
        if (revents == G_IO_IN) { /* Serial data arrived. */
                while (GMC_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;
                        buf = *(devc->buf + devc->buflen);