summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <thiago@mapbox.com>2016-07-13 17:55:21 +0300
committerThiago Marcos P. Santos <thiago@mapbox.com>2016-07-13 17:56:51 +0300
commit389c7615eb70483b19f5917395f8cd505c08361b (patch)
treeaac1cda5d551d440f9aa6435c59fc7aa51b2012b /src
parentb9c273d19713f9712dc06c90364fc78224fac351 (diff)
downloadqtlocation-mapboxgl-389c7615eb70483b19f5917395f8cd505c08361b.tar.gz
[core] Revert workaround for std::atomic on ARMv5
Got fix on r12. https://github.com/android-ndk/ndk/issues/31
Diffstat (limited to 'src')
-rw-r--r--src/mbgl/geometry/glyph_atlas.hpp4
-rw-r--r--src/mbgl/renderer/bucket.hpp5
-rw-r--r--src/mbgl/sprite/sprite_atlas.hpp4
-rw-r--r--src/mbgl/storage/network_status.cpp2
-rw-r--r--src/mbgl/style/bucket_parameters.hpp6
-rw-r--r--src/mbgl/text/glyph_pbf.hpp4
-rw-r--r--src/mbgl/tile/geometry_tile.hpp4
-rw-r--r--src/mbgl/tile/tile_worker.cpp2
-rw-r--r--src/mbgl/tile/tile_worker.hpp6
-rw-r--r--src/mbgl/util/atomic.hpp45
-rw-r--r--src/mbgl/util/raster.hpp5
-rw-r--r--src/mbgl/util/thread.hpp1
12 files changed, 22 insertions, 66 deletions
diff --git a/src/mbgl/geometry/glyph_atlas.hpp b/src/mbgl/geometry/glyph_atlas.hpp
index 5252963f51..b9170c1caf 100644
--- a/src/mbgl/geometry/glyph_atlas.hpp
+++ b/src/mbgl/geometry/glyph_atlas.hpp
@@ -2,12 +2,12 @@
#include <mbgl/geometry/binpack.hpp>
#include <mbgl/text/glyph_store.hpp>
-#include <mbgl/util/atomic.hpp>
#include <mbgl/util/noncopyable.hpp>
#include <mbgl/util/optional.hpp>
#include <mbgl/gl/gl.hpp>
#include <mbgl/gl/object_store.hpp>
+#include <atomic>
#include <string>
#include <set>
#include <unordered_map>
@@ -57,7 +57,7 @@ private:
BinPack<uint16_t> bin;
std::unordered_map<FontStack, std::map<uint32_t, GlyphValue>, FontStackHash> index;
const std::unique_ptr<uint8_t[]> data;
- util::Atomic<bool> dirty;
+ std::atomic<bool> dirty;
mbgl::optional<gl::UniqueTexture> texture;
};
diff --git a/src/mbgl/renderer/bucket.hpp b/src/mbgl/renderer/bucket.hpp
index 635c83e3c0..cf461e4389 100644
--- a/src/mbgl/renderer/bucket.hpp
+++ b/src/mbgl/renderer/bucket.hpp
@@ -2,9 +2,10 @@
#include <mbgl/gl/gl.hpp>
#include <mbgl/renderer/render_pass.hpp>
-#include <mbgl/util/atomic.hpp>
#include <mbgl/util/noncopyable.hpp>
+#include <atomic>
+
#define BUFFER_OFFSET_0 ((GLbyte*)nullptr)
#define BUFFER_OFFSET(i) ((BUFFER_OFFSET_0) + (i))
@@ -50,7 +51,7 @@ public:
virtual void swapRenderData() {}
protected:
- util::Atomic<bool> uploaded { false };
+ std::atomic<bool> uploaded { false };
};
} // namespace mbgl
diff --git a/src/mbgl/sprite/sprite_atlas.hpp b/src/mbgl/sprite/sprite_atlas.hpp
index 4f44eb9ac9..990ba59e03 100644
--- a/src/mbgl/sprite/sprite_atlas.hpp
+++ b/src/mbgl/sprite/sprite_atlas.hpp
@@ -3,11 +3,11 @@
#include <mbgl/geometry/binpack.hpp>
#include <mbgl/gl/gl.hpp>
#include <mbgl/gl/object_store.hpp>
-#include <mbgl/util/atomic.hpp>
#include <mbgl/util/noncopyable.hpp>
#include <mbgl/util/ptr.hpp>
#include <mbgl/util/optional.hpp>
+#include <atomic>
#include <string>
#include <map>
#include <mutex>
@@ -92,7 +92,7 @@ private:
std::map<Key, Holder> images;
std::set<std::string> uninitialized;
std::unique_ptr<uint32_t[]> data;
- util::Atomic<bool> dirty;
+ std::atomic<bool> dirty;
bool fullUploadRequired = true;
mbgl::optional<gl::UniqueTexture> texture;
uint32_t filter = 0;
diff --git a/src/mbgl/storage/network_status.cpp b/src/mbgl/storage/network_status.cpp
index bc538a5f38..1ef5619bd6 100644
--- a/src/mbgl/storage/network_status.cpp
+++ b/src/mbgl/storage/network_status.cpp
@@ -9,7 +9,7 @@
namespace mbgl {
-util::Atomic<bool> NetworkStatus::online(true);
+std::atomic<bool> NetworkStatus::online(true);
std::mutex NetworkStatus::mtx;
std::set<util::AsyncTask *> NetworkStatus::observers;
diff --git a/src/mbgl/style/bucket_parameters.hpp b/src/mbgl/style/bucket_parameters.hpp
index 8c1da72f25..3b42e7c41b 100644
--- a/src/mbgl/style/bucket_parameters.hpp
+++ b/src/mbgl/style/bucket_parameters.hpp
@@ -3,8 +3,8 @@
#include <mbgl/map/mode.hpp>
#include <mbgl/tile/tile_id.hpp>
#include <mbgl/style/filter.hpp>
-#include <mbgl/util/atomic.hpp>
+#include <atomic>
#include <functional>
namespace mbgl {
@@ -24,7 +24,7 @@ class BucketParameters {
public:
BucketParameters(const OverscaledTileID& tileID_,
const GeometryTileLayer& layer_,
- const util::Atomic<bool>& obsolete_,
+ const std::atomic<bool>& obsolete_,
uintptr_t tileUID_,
bool& partialParse_,
SpriteStore& spriteStore_,
@@ -51,7 +51,7 @@ public:
const OverscaledTileID& tileID;
const GeometryTileLayer& layer;
- const util::Atomic<bool>& obsolete;
+ const std::atomic<bool>& obsolete;
uintptr_t tileUID;
bool& partialParse;
SpriteStore& spriteStore;
diff --git a/src/mbgl/text/glyph_pbf.hpp b/src/mbgl/text/glyph_pbf.hpp
index c238cbb5d7..85f4b62e6f 100644
--- a/src/mbgl/text/glyph_pbf.hpp
+++ b/src/mbgl/text/glyph_pbf.hpp
@@ -2,10 +2,10 @@
#include <mbgl/text/glyph.hpp>
#include <mbgl/text/glyph_store.hpp>
-#include <mbgl/util/atomic.hpp>
#include <mbgl/util/font_stack.hpp>
#include <mbgl/util/noncopyable.hpp>
+#include <atomic>
#include <functional>
#include <string>
#include <memory>
@@ -29,7 +29,7 @@ public:
}
private:
- util::Atomic<bool> parsed;
+ std::atomic<bool> parsed;
std::unique_ptr<AsyncRequest> req;
GlyphStoreObserver* observer = nullptr;
};
diff --git a/src/mbgl/tile/geometry_tile.hpp b/src/mbgl/tile/geometry_tile.hpp
index 6072e2b1da..891aba0432 100644
--- a/src/mbgl/tile/geometry_tile.hpp
+++ b/src/mbgl/tile/geometry_tile.hpp
@@ -3,9 +3,9 @@
#include <mbgl/tile/tile.hpp>
#include <mbgl/tile/tile_worker.hpp>
#include <mbgl/text/placement_config.hpp>
-#include <mbgl/util/atomic.hpp>
#include <mbgl/util/feature.hpp>
+#include <atomic>
#include <memory>
#include <unordered_map>
#include <vector>
@@ -73,7 +73,7 @@ private:
PlacementConfig targetConfig;
// Used to signal the worker that it should abandon parsing this tile as soon as possible.
- util::Atomic<bool> obsolete { false };
+ std::atomic<bool> obsolete { false };
};
} // namespace mbgl
diff --git a/src/mbgl/tile/tile_worker.cpp b/src/mbgl/tile/tile_worker.cpp
index fe75c86741..5761ca83b9 100644
--- a/src/mbgl/tile/tile_worker.cpp
+++ b/src/mbgl/tile/tile_worker.cpp
@@ -22,7 +22,7 @@ TileWorker::TileWorker(OverscaledTileID id_,
SpriteStore& spriteStore_,
GlyphAtlas& glyphAtlas_,
GlyphStore& glyphStore_,
- const util::Atomic<bool>& obsolete_,
+ const std::atomic<bool>& obsolete_,
const MapMode mode_)
: id(std::move(id_)),
spriteStore(spriteStore_),
diff --git a/src/mbgl/tile/tile_worker.hpp b/src/mbgl/tile/tile_worker.hpp
index b25858c955..872c058b43 100644
--- a/src/mbgl/tile/tile_worker.hpp
+++ b/src/mbgl/tile/tile_worker.hpp
@@ -2,13 +2,13 @@
#include <mbgl/map/mode.hpp>
#include <mbgl/tile/tile_id.hpp>
-#include <mbgl/util/atomic.hpp>
#include <mbgl/util/noncopyable.hpp>
#include <mbgl/util/variant.hpp>
#include <mbgl/util/ptr.hpp>
#include <mbgl/text/placement_config.hpp>
#include <mbgl/geometry/feature_index.hpp>
+#include <atomic>
#include <string>
#include <memory>
#include <mutex>
@@ -49,7 +49,7 @@ public:
SpriteStore&,
GlyphAtlas&,
GlyphStore&,
- const util::Atomic<bool>&,
+ const std::atomic<bool>&,
const MapMode);
~TileWorker();
@@ -73,7 +73,7 @@ private:
SpriteStore& spriteStore;
GlyphAtlas& glyphAtlas;
GlyphStore& glyphStore;
- const util::Atomic<bool>& obsolete;
+ const std::atomic<bool>& obsolete;
const MapMode mode;
bool partialParse = false;
diff --git a/src/mbgl/util/atomic.hpp b/src/mbgl/util/atomic.hpp
deleted file mode 100644
index 3f68bf46a5..0000000000
--- a/src/mbgl/util/atomic.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#pragma once
-
-#include <atomic>
-#include <mutex>
-
-namespace mbgl {
-namespace util {
-
-// std::atomic<bool> is implemented lock free which
-// is not supported by ARMv5 but the code generated
-// seems to be using that and not working at all,
-// thus, this naive implementation using mutexes.
-#if defined(__ANDROID__) && defined(__ARM_ARCH_5TE__)
-
-template <typename T>
-class Atomic {
-public:
- Atomic() = default;
- explicit Atomic(const T& data_) : data(data_) {}
-
- void operator=(const T& other) {
- std::lock_guard<std::mutex> lock(mtx);
- data = other;
- }
-
- operator bool() const {
- std::lock_guard<std::mutex> lock(mtx);
-
- return data;
- }
-
-private:
- T data;
- mutable std::mutex mtx;
-};
-
-#else
-
-template <typename T>
-using Atomic = std::atomic<T>;
-
-#endif
-
-} // namespace util
-} // namespace mbgl
diff --git a/src/mbgl/util/raster.hpp b/src/mbgl/util/raster.hpp
index a30c086323..34e7c67678 100644
--- a/src/mbgl/util/raster.hpp
+++ b/src/mbgl/util/raster.hpp
@@ -3,7 +3,8 @@
#include <mbgl/gl/object_store.hpp>
#include <mbgl/util/image.hpp>
#include <mbgl/util/optional.hpp>
-#include <mbgl/util/atomic.hpp>
+
+#include <atomic>
namespace mbgl {
@@ -34,7 +35,7 @@ public:
private:
// raw pixels have been loaded
- util::Atomic<bool> loaded { false };
+ std::atomic<bool> loaded { false };
// filters
Scaling filter = Scaling::Nearest;
diff --git a/src/mbgl/util/thread.hpp b/src/mbgl/util/thread.hpp
index 0de897d726..643d272b25 100644
--- a/src/mbgl/util/thread.hpp
+++ b/src/mbgl/util/thread.hpp
@@ -6,7 +6,6 @@
#include <utility>
#include <functional>
-#include <mbgl/util/atomic.hpp>
#include <mbgl/util/run_loop.hpp>
#include <mbgl/util/thread_context.hpp>
#include <mbgl/platform/platform.hpp>