From 5b78d7fdcf9b758f117eaa65dc5eeddd0d4557e0 Mon Sep 17 00:00:00 2001 From: Alex Trotsenko Date: Fri, 7 May 2021 18:16:17 +0300 Subject: QLocalSocket/Win: avoid double buffering on write As QWindowsPipeWriter now maintains a chunk queue, there is no need to use the internal QIODevice buffer and wait for the previous operation to complete. Change-Id: Id4d54edfe920aeb4a534980cb0cc85a56c067a70 Reviewed-by: Oswald Buddenhagen --- src/corelib/io/qwindowspipewriter_p.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/corelib/io/qwindowspipewriter_p.h') diff --git a/src/corelib/io/qwindowspipewriter_p.h b/src/corelib/io/qwindowspipewriter_p.h index cb78195a85..f8cabb225d 100644 --- a/src/corelib/io/qwindowspipewriter_p.h +++ b/src/corelib/io/qwindowspipewriter_p.h @@ -69,6 +69,7 @@ public: ~QWindowsPipeWriter(); bool write(const QByteArray &ba); + bool write(const char *data, qint64 size); void stop(); bool waitForWrite(int msecs); bool checkForWrite() { return consumePendingAndEmit(false); } @@ -83,6 +84,10 @@ protected: bool event(QEvent *e) override; private: + template + inline bool writeImpl(Args... args); + bool writeImplTail(QMutexLocker *locker); + void startAsyncWriteLocked(); static void CALLBACK waitCallback(PTP_CALLBACK_INSTANCE instance, PVOID context, PTP_WAIT wait, TP_WAIT_RESULT waitResult); -- cgit v1.2.3