diff options
author | Thiago Marcos P. Santos <thiago@mapbox.com> | 2016-06-03 16:40:15 +0300 |
---|---|---|
committer | Thiago Marcos P. Santos <thiago@mapbox.com> | 2016-06-06 22:19:25 +0300 |
commit | 7b8698b47a0ff5c4adaf474e47f89434f287f183 (patch) | |
tree | 410f69ee4d1161157b788409744d6391da54492e /platform | |
parent | 874fa41c128c2c3c7e075b0dcde727d6cf678866 (diff) | |
download | qtlocation-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.cpp | 4 | ||||
-rw-r--r-- | platform/android/src/run_loop_impl.hpp | 4 |
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; |