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