diff options
author | Alex Trotsenko <alex1973tr@gmail.com> | 2021-07-19 19:28:14 +0300 |
---|---|---|
committer | Alex Trotsenko <alex1973tr@gmail.com> | 2021-08-01 21:06:45 +0300 |
commit | 6f682d4876b82716729dbc0f16cccd0d8fda94fd (patch) | |
tree | 789f7f0fa8710eea6679d73a1585035c1b166439 | |
parent | 3bc976c2bda1516066de1eeb706826d26b098952 (diff) |
QLocalSocket: always open outer QIODevice in unbuffered mode
The actual buffering is performed either in the inner socket (Unix),
or in the pipeReader (Windows). To avoid unnecessary copying of data
between buffers, enforce unbuffered mode for all implementations,
which slightly improves read performance.
Change-Id: Idb2a09f35823b9945c71231710290be12d9930f7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
-rw-r--r-- | src/network/socket/qlocalsocket.cpp | 2 | ||||
-rw-r--r-- | src/network/socket/qlocalsocket_unix.cpp | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/network/socket/qlocalsocket.cpp b/src/network/socket/qlocalsocket.cpp index a42b70546c..001f585fa7 100644 --- a/src/network/socket/qlocalsocket.cpp +++ b/src/network/socket/qlocalsocket.cpp @@ -396,6 +396,8 @@ QLocalSocket::QLocalSocket(QObject * parent) : QIODevice(*new QLocalSocketPrivate, parent) { Q_D(QLocalSocket); + + d->readBufferChunkSize = 0; // force QIODevice unbuffered mode d->init(); } diff --git a/src/network/socket/qlocalsocket_unix.cpp b/src/network/socket/qlocalsocket_unix.cpp index d10ab36821..8f5da60553 100644 --- a/src/network/socket/qlocalsocket_unix.cpp +++ b/src/network/socket/qlocalsocket_unix.cpp @@ -357,7 +357,7 @@ void QLocalSocketPrivate::_q_connectToSocket() fullServerName = connectingPathName; if (unixSocket.setSocketDescriptor(connectingSocket, QAbstractSocket::ConnectedState, connectingOpenMode)) { - q->QIODevice::open(connectingOpenMode | QIODevice::Unbuffered); + q->QIODevice::open(connectingOpenMode); q->emit connected(); } else { QString function = QLatin1String("QLocalSocket::connectToServer"); |