summaryrefslogtreecommitdiff
path: root/src/serialport/qserialport_p.h
diff options
context:
space:
mode:
authorDenis Shienkov <denis.shienkov@gmail.com>2016-07-11 16:58:29 +0300
committerDenis Shienkov <denis.shienkov@gmail.com>2016-07-20 19:09:00 +0000
commit133dbd59fb04974149d2140b267fce91a7cfd4a2 (patch)
tree6a1ad83953607773a49d4a306f6bc1ca2a8cd165 /src/serialport/qserialport_p.h
parent9d758fb370026cb531d98ba42e98a8d6fabe6c0a (diff)
downloadqtserialport-133dbd59fb04974149d2140b267fce91a7cfd4a2.tar.gz
Detach buffer's segment for asynchronous write operation
QRingBuffer does not guarantee that the read pointer which is returned by QRingBuffer::readPointer() will stay valid after calling QRingBuffer::reserve() or QRingBuffer::append(). Thus, we need to detach the buffer's segment and pass it to the WriteFile() function to ensure it stays unmodified for the whole time of the asynchronous operation. Change-Id: I5a42086b4339a050a4df57c39348864502be2c74 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com> Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com> Reviewed-by: Anton Kudryavtsev <a.kudryavtsev@netris.ru> Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Diffstat (limited to 'src/serialport/qserialport_p.h')
-rw-r--r--src/serialport/qserialport_p.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/serialport/qserialport_p.h b/src/serialport/qserialport_p.h
index 81febed..567ca19 100644
--- a/src/serialport/qserialport_p.h
+++ b/src/serialport/qserialport_p.h
@@ -224,6 +224,7 @@ public:
COMMTIMEOUTS restoredCommTimeouts;
HANDLE handle;
QByteArray readChunkBuffer;
+ QByteArray writeChunkBuffer;
bool communicationStarted;
bool writeStarted;
bool readStarted;
@@ -234,7 +235,6 @@ public:
OVERLAPPED writeCompletionOverlapped;
DWORD originalEventMask;
DWORD triggeredEventMask;
- qint64 actualBytesToWrite;
#elif defined(Q_OS_UNIX)