mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-04-14 08:16:03 +02:00
Merge pull request #3126 from Atlante45/replace_qnetworkaccessmanager
Hopeful fix to ACs crash
This commit is contained in:
commit
b7b46b0a3b
2 changed files with 4 additions and 6 deletions
|
@ -211,13 +211,10 @@ void Agent::run() {
|
|||
NetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
|
||||
QNetworkReply *reply = networkAccessManager.get(QNetworkRequest(scriptURL));
|
||||
|
||||
// Make sure cache on same thread than its parent (NetworkAccessManager)
|
||||
QNetworkDiskCache* cache = new QNetworkDiskCache();
|
||||
cache->moveToThread(networkAccessManager.thread());
|
||||
cache->setParent(&networkAccessManager);
|
||||
|
||||
QString cachePath = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
|
||||
cache->setCacheDirectory(!cachePath.isEmpty() ? cachePath : "agentCache");
|
||||
cache->moveToThread(networkAccessManager.thread());
|
||||
networkAccessManager.setCache(cache);
|
||||
|
||||
qDebug() << "Downloading script at" << scriptURL.toString();
|
||||
|
@ -273,4 +270,5 @@ void Agent::run() {
|
|||
|
||||
void Agent::aboutToFinish() {
|
||||
_scriptEngine.stop();
|
||||
NetworkAccessManager::getInstance().clearAccessCache();
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ NetworkAccessManager& NetworkAccessManager::getInstance() {
|
|||
}
|
||||
|
||||
NetworkAccessManager::NetworkAccessManager() {
|
||||
qRegisterMetaType<QAbstractNetworkCache*>();
|
||||
}
|
||||
|
||||
QNetworkReply* NetworkAccessManager::get(const QNetworkRequest& request) {
|
||||
|
@ -151,10 +152,9 @@ QNetworkReply* NetworkAccessManager::sendCustomRequest(const QNetworkRequest& re
|
|||
|
||||
void NetworkAccessManager::setCache(QAbstractNetworkCache* cache) {
|
||||
if (QThread::currentThread() != thread()) {
|
||||
qRegisterMetaType<QAbstractNetworkCache*>();
|
||||
QMetaObject::invokeMethod(this,
|
||||
"setCache",
|
||||
Qt::QueuedConnection,
|
||||
Qt::BlockingQueuedConnection,
|
||||
Q_ARG(QAbstractNetworkCache*, cache));
|
||||
}
|
||||
QNetworkAccessManager::setCache(cache);
|
||||
|
|
Loading…
Reference in a new issue