summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <thiago@mapbox.com>2016-06-03 16:40:15 +0300
committerThiago Marcos P. Santos <thiago@mapbox.com>2016-06-06 22:19:25 +0300
commit7b8698b47a0ff5c4adaf474e47f89434f287f183 (patch)
tree410f69ee4d1161157b788409744d6391da54492e /platform
parent874fa41c128c2c3c7e075b0dcde727d6cf678866 (diff)
downloadqtlocation-mapboxgl-7b8698b47a0ff5c4adaf474e47f89434f287f183.tar.gz
[core] Naive atomic type for ARMv5
std::atomic<bool> is implemented lock free which doesn't work on ARMv5 and seems like the compiler is generating bogus code. This workaround is a naive implementation using regular mutexes.
Diffstat (limited to 'platform')
-rw-r--r--platform/android/src/async_task.cpp4
-rw-r--r--platform/android/src/run_loop_impl.hpp4
2 files changed, 4 insertions, 4 deletions
diff --git a/platform/android/src/async_task.cpp b/platform/android/src/async_task.cpp
index 7b78eadb0c..6a9263baff 100644
--- a/platform/android/src/async_task.cpp
+++ b/platform/android/src/async_task.cpp
@@ -1,9 +1,9 @@
#include "run_loop_impl.hpp"
#include <mbgl/util/async_task.hpp>
+#include <mbgl/util/atomic.hpp>
#include <mbgl/util/run_loop.hpp>
-#include <atomic>
#include <functional>
namespace mbgl {
@@ -45,7 +45,7 @@ private:
// TODO: Use std::atomic_flag if we ever drop
// support for ARMv5
- std::atomic<bool> queued;
+ util::Atomic<bool> queued;
std::function<void()> task;
};
diff --git a/platform/android/src/run_loop_impl.hpp b/platform/android/src/run_loop_impl.hpp
index 5cf7231175..d855728b60 100644
--- a/platform/android/src/run_loop_impl.hpp
+++ b/platform/android/src/run_loop_impl.hpp
@@ -2,10 +2,10 @@
#include "jni.hpp"
+#include <mbgl/util/atomic.hpp>
#include <mbgl/util/chrono.hpp>
#include <mbgl/util/run_loop.hpp>
-#include <atomic>
#include <list>
#include <memory>
#include <mutex>
@@ -47,7 +47,7 @@ private:
bool detach = false;
ALooper* loop = nullptr;
- std::atomic<bool> running;
+ util::Atomic<bool> running;
std::recursive_mutex mtx;
std::list<Runnable*> runnables;