summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/serialport/qserialport_unix.cpp13
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;
}