summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Shienkov <denis.shienkov@gmail.com>2014-08-14 22:35:03 +0400
committerDenis Shienkov <denis.shienkov@gmail.com>2014-08-15 08:57:56 +0200
commit13e89f96b86de7034af888617434f812a5303bdf (patch)
treeb458766db7acac2dc4635aa7d59e613ab71698d3
parent3c3b23b32c6d4a9067363f758aaf4ff9819b7fd8 (diff)
downloadqtserialport-13e89f96b86de7034af888617434f812a5303bdf.tar.gz
Fix handling of writing at using of waitForReadyRead()
The method waitForReadyRead() shall call of the write sequence since the signals from the startAsyncWriteTimer will not be handled inside of waitForReadyRead() without event-loop. Tested on Windows 8 with the on-board and USB serial ports, using Qt5. Task-number: QTBUG-40793 Change-Id: I7806f16a4df30c4ec1643d8f696ad5761decd30a Reviewed-by: Patrick Noffke <patrick.noffke@gmail.com> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
-rw-r--r--src/serialport/qserialport_win.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/serialport/qserialport_win.cpp b/src/serialport/qserialport_win.cpp
index 19f35b7..ecbf464 100644
--- a/src/serialport/qserialport_win.cpp
+++ b/src/serialport/qserialport_win.cpp
@@ -327,6 +327,9 @@ bool QSerialPortPrivate::waitForReadyRead(int msecs)
QElapsedTimer stopWatch;
stopWatch.start();
+ if (!writeStarted && !startAsyncWrite())
+ return false;
+
const qint64 initialReadBufferSize = readBuffer.size();
qint64 currentReadBufferSize = initialReadBufferSize;