summaryrefslogtreecommitdiff
path: root/src/mbgl/storage/request.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/storage/request.cpp')
-rw-r--r--src/mbgl/storage/request.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mbgl/storage/request.cpp b/src/mbgl/storage/request.cpp
index 79d441442d..f8ad555379 100644
--- a/src/mbgl/storage/request.cpp
+++ b/src/mbgl/storage/request.cpp
@@ -6,6 +6,7 @@
#include <cassert>
#include <functional>
+#include <atomic>
namespace mbgl {
@@ -40,18 +41,17 @@ void Request::invoke() {
// The user could supply a null pointer or empty std::function as a callback. In this case, we
// still do the file request, but we don't need to deliver a result.
if (callback) {
- callback(*response);
+ callback(*std::atomic_load(&response));
}
- delete this;
}
Request::~Request() = default;
// Called in the FileSource thread.
void Request::notify(const std::shared_ptr<const Response> &response_) {
- assert(!response);
- response = response_;
- assert(response);
+ assert(!std::atomic_load(&response));
+ assert(response_);
+ std::atomic_store(&response, response_);
async->send();
}