diff options
author | Peter Kümmel <syntheticpp@gmx.net> | 2014-06-16 20:59:22 +0200 |
---|---|---|
committer | Peter Kümmel <syntheticpp@gmx.net> | 2014-06-30 10:12:32 +0200 |
commit | d34fce4a5d12789ded107631e22cb6ef54d35eee (patch) | |
tree | 667cf3311d97f8376c69a742e26a5f58ddcbf0ca | |
parent | b3df3e8deaed821b101aef2c2367326107a6254a (diff) | |
download | qtserialport-d34fce4a5d12789ded107631e22cb6ef54d35eee.tar.gz |
Abort waitForReadyRead() when there is an error
When in readNotification() or completeAsyncWrite() an error
is emitted and the loop is not exited, this error signal
will flood the eventloop.
Change-Id: I77b8a4c337041258862b19a07917bef059c11cc1
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
-rw-r--r-- | src/serialport/qserialport_unix.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/serialport/qserialport_unix.cpp b/src/serialport/qserialport_unix.cpp index 70c160b..f7d2af9 100644 --- a/src/serialport/qserialport_unix.cpp +++ b/src/serialport/qserialport_unix.cpp @@ -424,6 +424,7 @@ bool QSerialPortPrivate::waitForReadyRead(int msecs) stopWatch.start(); + error = QSerialPort::NoError; do { bool readyToRead = false; bool readyToWrite = false; @@ -443,6 +444,9 @@ bool QSerialPortPrivate::waitForReadyRead(int msecs) if (readyToWrite) completeAsyncWrite(); + if (error != QSerialPort::NoError) + return false; + } while (msecs == -1 || timeoutValue(msecs, stopWatch.elapsed()) > 0); return false; } |