diff options
author | Denis Shienkov <denis.shienkov@gmail.com> | 2014-07-02 23:23:17 +0000 |
---|---|---|
committer | Denis Shienkov <denis.shienkov@gmail.com> | 2014-07-09 11:25:11 +0200 |
commit | 86457b216171e4195ff1053b856bb9237d37e3f2 (patch) | |
tree | 4bafb920a70e02437d708194c6cf369871fd89a9 /src/serialport/qserialport_unix.cpp | |
parent | 48607a2d0774ffe8ce87d5d611d025eb985d1f6f (diff) | |
download | qtserialport-86457b216171e4195ff1053b856bb9237d37e3f2.tar.gz |
Do not continue waitForReadyRead() if an error occurred
This patch improves workaround implemented in the previous commit
d34fce4a5d12789ded107631e22cb6ef54d35eee
Change-Id: I013b19b47ee343ab00f242d7ee1021b92c07d18f
Reviewed-by: Peter Kümmel <syntheticpp@gmx.net>
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Diffstat (limited to 'src/serialport/qserialport_unix.cpp')
-rw-r--r-- | src/serialport/qserialport_unix.cpp | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/src/serialport/qserialport_unix.cpp b/src/serialport/qserialport_unix.cpp index f7d2af9..29822d5 100644 --- a/src/serialport/qserialport_unix.cpp +++ b/src/serialport/qserialport_unix.cpp @@ -424,7 +424,6 @@ bool QSerialPortPrivate::waitForReadyRead(int msecs) stopWatch.start(); - error = QSerialPort::NoError; do { bool readyToRead = false; bool readyToWrite = false; @@ -436,17 +435,11 @@ bool QSerialPortPrivate::waitForReadyRead(int msecs) return false; } - if (readyToRead) { - if (readNotification()) - return true; - } - - if (readyToWrite) - completeAsyncWrite(); + if (readyToRead) + return readNotification(); - if (error != QSerialPort::NoError) + if (readyToWrite && !completeAsyncWrite()) return false; - } while (msecs == -1 || timeoutValue(msecs, stopWatch.elapsed()) > 0); return false; } |