diff options
author | Liang Qi <liang.qi@qt.io> | 2017-06-07 12:05:33 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-06-07 14:02:43 +0200 |
commit | 7cbee5629604aa49c618829c8e3e55fc64e94df7 (patch) | |
tree | d12041105160c1cb21226b365edb9653d87b5853 /src/network/socket/qnativesocketengine_winrt.cpp | |
parent | e400b7e326c554ccd819448866265953d2a0f24d (diff) | |
parent | 5f0ce2333f7e11a3ffb5d16a27cd9303efa712d5 (diff) |
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
src/widgets/widgets/qmenu.cpp
Change-Id: I6d3baf56eb24501cddb129a3cb6b958ccc25a308
Diffstat (limited to 'src/network/socket/qnativesocketengine_winrt.cpp')
-rw-r--r-- | src/network/socket/qnativesocketengine_winrt.cpp | 37 |
1 files changed, 10 insertions, 27 deletions
diff --git a/src/network/socket/qnativesocketengine_winrt.cpp b/src/network/socket/qnativesocketengine_winrt.cpp index 0625ea65da..38c2b6e8c0 100644 --- a/src/network/socket/qnativesocketengine_winrt.cpp +++ b/src/network/socket/qnativesocketengine_winrt.cpp @@ -1250,20 +1250,22 @@ void QNativeSocketEngine::handleConnectOpFinished(bool success, QAbstractSocket: void QNativeSocketEngine::handleNewDatagrams(const QList<WinRtDatagram> &datagrams) { Q_D(QNativeSocketEngine); - // Defer putting the datagrams into the list until the next event loop iteration - // (where the readyRead signal is emitted as well) - QMetaObject::invokeMethod(this, "putIntoPendingDatagramsList", Qt::QueuedConnection, - Q_ARG(QList<WinRtDatagram>, datagrams)); + QMutexLocker locker(&d->readMutex); + d->pendingDatagrams.append(datagrams); if (d->notifyOnRead) emit readReady(); } void QNativeSocketEngine::handleNewData(const QVector<QByteArray> &data) { - // Defer putting the data into the list until the next event loop iteration - // (where the readyRead signal is emitted as well) - QMetaObject::invokeMethod(this, "putIntoPendingData", Qt::QueuedConnection, - Q_ARG(QVector<QByteArray>, data)); + Q_D(QNativeSocketEngine); + QMutexLocker locker(&d->readMutex); + d->pendingData.append(data); + for (const QByteArray &newData : data) + d->bytesAvailable += newData.length(); + locker.unlock(); + if (d->notifyOnRead) + readNotification(); } void QNativeSocketEngine::handleTcpError(QAbstractSocket::SocketError error) @@ -1284,25 +1286,6 @@ void QNativeSocketEngine::handleTcpError(QAbstractSocket::SocketError error) emit readReady(); } -void QNativeSocketEngine::putIntoPendingDatagramsList(const QList<WinRtDatagram> &datagrams) -{ - Q_D(QNativeSocketEngine); - QMutexLocker locker(&d->readMutex); - d->pendingDatagrams.append(datagrams); -} - -void QNativeSocketEngine::putIntoPendingData(const QVector<QByteArray> &data) -{ - Q_D(QNativeSocketEngine); - QMutexLocker locker(&d->readMutex); - d->pendingData.append(data); - for (const QByteArray &newData : data) - d->bytesAvailable += newData.length(); - locker.unlock(); - if (d->notifyOnRead) - readNotification(); -} - bool QNativeSocketEnginePrivate::createNewSocket(QAbstractSocket::SocketType socketType, QAbstractSocket::NetworkLayerProtocol &socketProtocol) { Q_UNUSED(socketProtocol); |