QNetworkAccessBackend: emit readyRead less often
Once per iteration of the loop wouldn't theoretically be so bad if there was no overhead to emitting signals or reading from buffers. Change-Id: I0e424264fcc95eb2e2e5f8f908cf9ae3a7cc4b7e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>bb10
parent
d806ce6fc5
commit
0e9b75eab2
|
|
@ -734,6 +734,7 @@ void QNetworkReplyImplPrivate::readFromBackend()
|
|||
if (backend->bytesAvailable())
|
||||
emit q->readyRead();
|
||||
} else {
|
||||
bool anyBytesRead = false;
|
||||
while (backend->bytesAvailable()
|
||||
&& (!readBufferMaxSize || buffer.size() < readBufferMaxSize)) {
|
||||
qint64 toRead = qMin(nextDownstreamBlockSize(), backend->bytesAvailable());
|
||||
|
|
@ -743,8 +744,10 @@ void QNetworkReplyImplPrivate::readFromBackend()
|
|||
qint64 bytesRead = backend->read(data, toRead);
|
||||
Q_ASSERT(bytesRead <= toRead);
|
||||
buffer.chop(toRead - bytesRead);
|
||||
emit q->readyRead();
|
||||
anyBytesRead |= bytesRead > 0;
|
||||
}
|
||||
if (anyBytesRead)
|
||||
emit q->readyRead();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue