From 9b06a827cbb3967e7476ca0888f8bf3b171424f2 Mon Sep 17 00:00:00 2001
From: Markus Goetz <Markus.Goetz@nokia.com>
Date: Mon, 26 Jul 2010 12:44:06 +0200
Subject: QAbstractSocket: Remove old workaround

This old workaround hurts performance on Linux but is only needed
on old kernels and in corner cases (using a local socket with
QAbstractSocket). Removing it.

Reviewed-by: Peter Hartmann
---
 src/network/socket/qabstractsocket.cpp | 22 ----------------------
 src/network/socket/qabstractsocket_p.h |  3 ---
 2 files changed, 25 deletions(-)

diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp
index b604e89..171fbb6 100644
--- a/src/network/socket/qabstractsocket.cpp
+++ b/src/network/socket/qabstractsocket.cpp
@@ -466,9 +466,6 @@ QAbstractSocketPrivate::QAbstractSocketPrivate()
       peerPort(0),
       socketEngine(0),
       cachedSocketDescriptor(-1),
-#ifdef Q_OS_LINUX
-      addToBytesAvailable(0),
-#endif
       readBufferMaxSize(0),
       readBuffer(QABSTRACTSOCKET_BUFFERSIZE),
       writeBuffer(QABSTRACTSOCKET_BUFFERSIZE),
@@ -1132,10 +1129,6 @@ bool QAbstractSocketPrivate::readFromSocket()
     Q_Q(QAbstractSocket);
     // Find how many bytes we can read from the socket layer.
     qint64 bytesToRead = socketEngine->bytesAvailable();
-#ifdef Q_OS_LINUX
-    if (bytesToRead > 0) // ### See setSocketDescriptor()
-        bytesToRead += addToBytesAvailable;
-#endif
     if (bytesToRead == 0) {
         // Under heavy load, certain conditions can trigger read notifications
         // for socket notifiers on which there is no activity. If we continue
@@ -1340,10 +1333,6 @@ void QAbstractSocket::connectToHostImplementation(const QString &hostName, quint
     d->localAddress.clear();
     d->peerAddress.clear();
     d->peerName = hostName;
-#ifdef Q_OS_LINUX
-    // ### See setSocketDescriptor().
-    d->addToBytesAvailable = 0;
-#endif
     if (d->hostLookupId != -1) {
         QHostInfo::abortHostLookup(d->hostLookupId);
         d->hostLookupId = -1;
@@ -1603,17 +1592,6 @@ bool QAbstractSocket::setSocketDescriptor(int socketDescriptor, SocketState sock
     d->peerAddress = d->socketEngine->peerAddress();
     d->cachedSocketDescriptor = socketDescriptor;
 
-#ifdef Q_OS_LINUX
-    // ### This is a workaround for certain broken Linux kernels, when using
-    // QTcpSocket with a Unix domain socket. It was introduced around 2.6.9,
-    // and fixed at some point after that.
-    // http://archive.linux-usenet.com/index-t-73300.html
-    // We can provide a better workaround for this: readFromSocket() can loop
-    // while reading, but this must happen without triggering an implicit
-    // close because of reading after the socket has closed.
-    d->addToBytesAvailable = 4096;
-#endif
-
     return true;
 }
 
diff --git a/src/network/socket/qabstractsocket_p.h b/src/network/socket/qabstractsocket_p.h
index b51c301..6c333d3 100644
--- a/src/network/socket/qabstractsocket_p.h
+++ b/src/network/socket/qabstractsocket_p.h
@@ -138,9 +138,6 @@ public:
     void setupSocketNotifiers();
     bool readFromSocket();
 
-#ifdef Q_OS_LINUX
-    qint64 addToBytesAvailable;
-#endif
     qint64 readBufferMaxSize;
     QRingBuffer readBuffer;
     QRingBuffer writeBuffer;
-- 
cgit v0.12