diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index c65edb66730..397bb0535e4 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 1f456746ae5..a914ee3f04d 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 {