From 1444b3a18668961a9cd4cc3fea57c0442bf21062 Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Tue, 6 Nov 2018 09:57:51 -0800 Subject: [PATCH] resource mutex issues (cherry picked from commit 750629a6194ec98534746a377b3ba027c1dcc20e) (cherry picked from commit fc5ab3289a5f88f245c2825edd085532bd4c97ca) --- libraries/networking/src/ResourceCache.cpp | 2 ++ libraries/networking/src/ResourceCache.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/libraries/networking/src/ResourceCache.cpp b/libraries/networking/src/ResourceCache.cpp index 7aad8d468a..392bc5b7af 100644 --- a/libraries/networking/src/ResourceCache.cpp +++ b/libraries/networking/src/ResourceCache.cpp @@ -740,6 +740,8 @@ void Resource::handleReplyFinished() { setSize(_bytesTotal); + // Make sure we keep the Resource alive here + auto self = _self.lock(); ResourceCache::requestCompleted(_self); auto result = _request->getResult(); diff --git a/libraries/networking/src/ResourceCache.h b/libraries/networking/src/ResourceCache.h index 33490301d7..c632399ad4 100644 --- a/libraries/networking/src/ResourceCache.h +++ b/libraries/networking/src/ResourceCache.h @@ -62,7 +62,7 @@ static const qint64 MAX_UNUSED_MAX_SIZE = MAXIMUM_CACHE_SIZE; class ResourceCacheSharedItems : public Dependency { SINGLETON_DEPENDENCY - using Mutex = std::mutex; + using Mutex = std::recursive_mutex; using Lock = std::unique_lock; public: