diff options
author | Andy Shaw <andy.shaw@digia.com> | 2012-03-07 13:08:02 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-08 05:31:40 +0100 |
commit | 46c58502639c25e5d19dd84d913b1208d5051db5 (patch) | |
tree | a48415bcecd4fc9f320f6005209cad4f230d2503 /src/network | |
parent | 4bdc7e6f8b5eb13a0c8012674877eacb2e92344e (diff) |
Call wait() after calling quit() so that it can gracefully finish
There was a problem with slow https connections that if the download
was ongoing when quit() was called then it tended to cause a crash
because it tries to shutdown the SSL connection.
Task-number: QTBUG-24594
Change-Id: I6b161bc7a9bb99e41849537462de2d7c92661902
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/access/qnetworkaccessmanager.cpp | 2 | ||||
-rw-r--r-- | src/network/access/qnetworkreplyhttpimpl.cpp | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index c65edb6673..397bb0535e 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -1185,6 +1185,7 @@ void QNetworkAccessManagerPrivate::clearCache(QNetworkAccessManager *manager) if (manager->d_func()->httpThread) { // The thread will deleteLater() itself from its finished() signal manager->d_func()->httpThread->quit(); + manager->d_func()->httpThread->wait(5000); manager->d_func()->httpThread = 0; } } @@ -1194,6 +1195,7 @@ QNetworkAccessManagerPrivate::~QNetworkAccessManagerPrivate() if (httpThread) { // The thread will deleteLater() itself from its finished() signal httpThread->quit(); + httpThread->wait(5000); httpThread = 0; } } diff --git a/src/network/access/qnetworkreplyhttpimpl.cpp b/src/network/access/qnetworkreplyhttpimpl.cpp index 1f456746ae..a914ee3f04 100644 --- a/src/network/access/qnetworkreplyhttpimpl.cpp +++ b/src/network/access/qnetworkreplyhttpimpl.cpp @@ -904,6 +904,7 @@ void QNetworkReplyHttpImplPrivate::postRequest() // End the thread. It will delete itself from the finished() signal thread->quit(); + thread->wait(5000); finished(); } else { |