diff options
author | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2019-02-14 16:56:17 +0200 |
---|---|---|
committer | Thiago Marcos P. Santos <tmpsantos@gmail.com> | 2019-05-10 14:20:38 +0300 |
commit | 06f1dc48a2fb317979ab48ce323115be5bd48f16 (patch) | |
tree | 5ef1e78a1f98a7a26034ca519e267bda235b2817 /test | |
parent | 947bc75f56fae7f1e70f21b98730dc6b460b9194 (diff) | |
download | qtlocation-mapboxgl-06f1dc48a2fb317979ab48ce323115be5bd48f16.tar.gz |
[core] Make the BackgroundScheduler a singleton
- Do not carry it over everywhere as parameter, it is a shared
instance anyway and the lifecycle is pretty much the app lifecycle
from the moment we instantiate a map.
- Rename to BackgroundScheduler because it is a Scheduler that will
do tasks in the background, we don't make assumptions if it is a
thread pool or a single thread.
- Most importantly, remove the dependency from `core` on `platform`.
Diffstat (limited to 'test')
27 files changed, 98 insertions, 170 deletions
diff --git a/test/actor/actor.test.cpp b/test/actor/actor.test.cpp index 02308b7ce0..6db95a83f1 100644 --- a/test/actor/actor.test.cpp +++ b/test/actor/actor.test.cpp @@ -1,8 +1,8 @@ #include <mbgl/actor/actor.hpp> -#include <mbgl/util/default_thread_pool.hpp> -#include <mbgl/util/run_loop.hpp> +#include <mbgl/actor/scheduler.hpp> #include <mbgl/test/util.hpp> +#include <mbgl/util/run_loop.hpp> #include <chrono> #include <functional> @@ -20,9 +20,8 @@ TEST(Actor, Construction) { }; }; - ThreadPool pool { 1 }; bool constructed = false; - Actor<Test> test(pool, std::ref(constructed)); + Actor<Test> test(Scheduler::GetBackground(), std::ref(constructed)); EXPECT_TRUE(constructed); } @@ -33,14 +32,13 @@ TEST(Actor, Destruction) { ~Test() { destructed = true; } - + bool& destructed; }; - ThreadPool pool { 1 }; bool destructed = false; { - Actor<Test> test(pool, std::ref(destructed)); + Actor<Test> test(Scheduler::GetBackground(), std::ref(destructed)); } EXPECT_TRUE(destructed); @@ -72,15 +70,13 @@ TEST(Actor, DestructionBlocksOnReceive) { } }; - ThreadPool pool { 1 }; - std::promise<void> enteredPromise; std::future<void> enteredFuture = enteredPromise.get_future(); std::promise<void> exitingPromise; std::future<void> exitingFuture = exitingPromise.get_future(); - Actor<Test> test(pool, std::move(enteredPromise), std::move(exitingFuture)); + Actor<Test> test(Scheduler::GetBackground(), std::move(enteredPromise), std::move(exitingFuture)); test.self().invoke(&Test::wait); enteredFuture.wait(); @@ -157,11 +153,9 @@ TEST(Actor, DestructionAllowedInReceiveOnSameThread) { } }; - ThreadPool pool { 1 }; - std::promise<void> callbackFiredPromise; - - auto test = std::make_unique<Actor<Test>>(pool); + auto retainer = Scheduler::GetBackground(); + auto test = std::make_unique<Actor<Test>>(retainer); // Callback (triggered while mutex is locked in Mailbox::receive()) test->self().invoke(&Test::callMeBack, [&]() { @@ -189,12 +183,10 @@ TEST(Actor, SelfDestructionDoesntCrashWaitingReceivingThreads) { }; - ThreadPool pool { 2 }; - std::promise<void> actorClosedPromise; - auto closingActor = std::make_unique<Actor<Test>>(pool); - auto waitingActor = std::make_unique<Actor<Test>>(pool); + auto closingActor = std::make_unique<Actor<Test>>(Scheduler::GetBackground()); + auto waitingActor = std::make_unique<Actor<Test>>(Scheduler::GetBackground()); std::atomic<bool> waitingMessageProcessed {false}; @@ -251,11 +243,9 @@ TEST(Actor, OrderedMailbox) { } }; - ThreadPool pool { 1 }; - std::promise<void> endedPromise; std::future<void> endedFuture = endedPromise.get_future(); - Actor<Test> test(pool, std::move(endedPromise)); + Actor<Test> test(Scheduler::GetBackground(), std::move(endedPromise)); for (auto i = 1; i <= 10; ++i) { test.self().invoke(&Test::receive, i); @@ -287,11 +277,9 @@ TEST(Actor, NonConcurrentMailbox) { } }; - ThreadPool pool { 10 }; - std::promise<void> endedPromise; std::future<void> endedFuture = endedPromise.get_future(); - Actor<Test> test(pool, std::move(endedPromise)); + Actor<Test> test(Scheduler::GetBackground(), std::move(endedPromise)); for (auto i = 1; i <= 10; ++i) { test.self().invoke(&Test::receive, i); @@ -313,13 +301,12 @@ TEST(Actor, Ask) { } }; - ThreadPool pool { 2 }; - Actor<Test> test(pool); + Actor<Test> test(Scheduler::GetBackground()); auto result = test.self().ask(&Test::doubleIt, 1); ASSERT_TRUE(result.valid()); - + auto status = result.wait_for(std::chrono::seconds(1)); ASSERT_EQ(std::future_status::ready, status); ASSERT_EQ(2, result.get()); @@ -339,9 +326,8 @@ TEST(Actor, AskVoid) { } }; - ThreadPool pool { 1 }; bool executed = false; - Actor<Test> actor(pool, executed); + Actor<Test> actor(Scheduler::GetBackground(), executed); actor.self().ask(&Test::doIt).get(); EXPECT_TRUE(executed); @@ -349,31 +335,30 @@ TEST(Actor, AskVoid) { TEST(Actor, NoSelfActorRef) { // Not all actors need a reference to self - + // Trivially constructable struct Trivial {}; - - ThreadPool pool { 2 }; - Actor<Trivial> trivial(pool); - - + + Actor<Trivial> trivial(Scheduler::GetBackground()); + + // With arguments struct WithArguments { std::promise<void> promise; - + WithArguments(std::promise<void> promise_) : promise(std::move(promise_)) { } - + void receive() { promise.set_value(); } }; - + std::promise<void> promise; auto future = promise.get_future(); - Actor<WithArguments> withArguments(pool, std::move(promise)); - + Actor<WithArguments> withArguments(Scheduler::GetBackground(), std::move(promise)); + withArguments.self().invoke(&WithArguments::receive); future.wait(); } @@ -386,32 +371,32 @@ TEST(Actor, TwoPhaseConstruction) { struct Test { Test(ActorRef<Test>, std::shared_ptr<bool> destroyed_) : destroyed(std::move(destroyed_)) {}; - + ~Test() { *destroyed = true; } - + void callMe(std::promise<void> p) { p.set_value(); } - + void stop() { util::RunLoop::Get()->stop(); } - + std::shared_ptr<bool> destroyed; }; AspiringActor<Test> parent; - + auto destroyed = std::make_shared<bool>(false); - + std::promise<void> queueExecuted; auto queueExecutedFuture = queueExecuted.get_future(); - + parent.self().invoke(&Test::callMe, std::move(queueExecuted)); parent.self().invoke(&Test::stop); - + auto thread = std::thread([ capturedArgs = std::make_tuple(destroyed), &parent @@ -420,11 +405,11 @@ TEST(Actor, TwoPhaseConstruction) { EstablishedActor<Test> test(loop, parent, capturedArgs); loop.run(); }); - + // should not hang queueExecutedFuture.get(); thread.join(); - + EXPECT_TRUE(*destroyed); } diff --git a/test/actor/actor_ref.test.cpp b/test/actor/actor_ref.test.cpp index 20aa1c35c1..221a220ed9 100644 --- a/test/actor/actor_ref.test.cpp +++ b/test/actor/actor_ref.test.cpp @@ -1,6 +1,6 @@ #include <mbgl/actor/actor.hpp> -#include <mbgl/util/default_thread_pool.hpp> +#include <mbgl/actor/scheduler.hpp> #include <mbgl/test/util.hpp> #include <future> @@ -27,11 +27,10 @@ TEST(ActorRef, CanOutliveActor) { } }; - ThreadPool pool { 1 }; bool died = false; ActorRef<Test> test = [&] () { - return Actor<Test>(pool, std::ref(died)).self(); + return Actor<Test>(Scheduler::GetBackground(), std::ref(died)).self(); }(); EXPECT_TRUE(died); @@ -54,8 +53,7 @@ TEST(ActorRef, Ask) { } }; - ThreadPool pool { 1 }; - Actor<Test> actor(pool); + Actor<Test> actor(Scheduler::GetBackground()); ActorRef<Test> ref = actor.self(); EXPECT_EQ(20, ref.ask(&Test::gimme).get()); @@ -76,9 +74,8 @@ TEST(ActorRef, AskVoid) { } }; - ThreadPool pool { 1 }; bool executed = false; - Actor<Test> actor(pool, executed); + Actor<Test> actor(Scheduler::GetBackground(), executed); ActorRef<Test> ref = actor.self(); ref.ask(&Test::doIt).get(); @@ -104,8 +101,7 @@ TEST(ActorRef, AskOnDestroyedActor) { }; bool died = false; - ThreadPool pool { 1 }; - auto actor = std::make_unique<Actor<Test>>(pool, died); + auto actor = std::make_unique<Actor<Test>>(Scheduler::GetBackground(), died); ActorRef<Test> ref = actor->self(); actor.reset(); diff --git a/test/api/annotations.test.cpp b/test/api/annotations.test.cpp index 11920d1624..2d76a3d154 100644 --- a/test/api/annotations.test.cpp +++ b/test/api/annotations.test.cpp @@ -2,7 +2,6 @@ #include <mbgl/test/stub_file_source.hpp> #include <mbgl/test/map_adapter.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/annotation/annotation.hpp> #include <mbgl/style/style.hpp> #include <mbgl/style/image.hpp> @@ -28,10 +27,9 @@ std::unique_ptr<style::Image> namedMarker(const std::string& name) { class AnnotationTest { public: util::RunLoop loop; - ThreadPool threadPool { 4 }; - HeadlessFrontend frontend { 1, threadPool }; + HeadlessFrontend frontend { 1 }; - MapAdapter map { frontend, MapObserver::nullObserver(), std::make_shared<StubFileSource>(), threadPool, + MapAdapter map { frontend, MapObserver::nullObserver(), std::make_shared<StubFileSource>(), MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize())}; void checkRendering(const char * name) { diff --git a/test/api/api_misuse.test.cpp b/test/api/api_misuse.test.cpp index b65bdf9918..54d8eb5912 100644 --- a/test/api/api_misuse.test.cpp +++ b/test/api/api_misuse.test.cpp @@ -6,7 +6,6 @@ #include <mbgl/map/map_options.hpp> #include <mbgl/gfx/backend_scope.hpp> #include <mbgl/gl/headless_frontend.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/util/exception.hpp> #include <mbgl/util/run_loop.hpp> @@ -21,11 +20,10 @@ TEST(API, RenderWithoutCallback) { util::RunLoop loop; - ThreadPool threadPool(4); - HeadlessFrontend frontend { 1, threadPool }; + HeadlessFrontend frontend { 1 }; auto map = std::make_unique<MapAdapter>(frontend, MapObserver::nullObserver(), - std::make_shared<StubFileSource>(), threadPool, + std::make_shared<StubFileSource>(), MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize())); map->renderStill(nullptr); diff --git a/test/api/custom_geometry_source.test.cpp b/test/api/custom_geometry_source.test.cpp index f796e3086b..df65dc2703 100644 --- a/test/api/custom_geometry_source.test.cpp +++ b/test/api/custom_geometry_source.test.cpp @@ -2,7 +2,6 @@ #include <mbgl/map/map.hpp> #include <mbgl/map/map_options.hpp> -#include <mbgl/util/shared_thread_pool.hpp> #include <mbgl/gl/headless_frontend.hpp> #include <mbgl/storage/resource_options.hpp> #include <mbgl/style/style.hpp> @@ -20,9 +19,8 @@ using namespace mbgl::style; TEST(CustomGeometrySource, Grid) { util::RunLoop loop; - auto threadPool = sharedThreadPool(); - HeadlessFrontend frontend { 1, *threadPool }; - Map map(frontend, MapObserver::nullObserver(), *threadPool, + HeadlessFrontend frontend { 1 }; + Map map(frontend, MapObserver::nullObserver(), MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize()), ResourceOptions().withCachePath(":memory:").withAssetPath("test/fixtures/api/assets")); map.getStyle().loadJSON(util::read_file("test/fixtures/api/water.json")); diff --git a/test/api/custom_layer.test.cpp b/test/api/custom_layer.test.cpp index 4a0a34bafc..e9b9aee9bc 100644 --- a/test/api/custom_layer.test.cpp +++ b/test/api/custom_layer.test.cpp @@ -3,7 +3,6 @@ #include <mbgl/platform/gl_functions.hpp> #include <mbgl/map/map.hpp> #include <mbgl/map/map_options.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/gl/defines.hpp> #include <mbgl/gl/headless_frontend.hpp> #include <mbgl/storage/resource_options.hpp> @@ -90,9 +89,8 @@ public: TEST(CustomLayer, Basic) { util::RunLoop loop; - ThreadPool threadPool(4); - HeadlessFrontend frontend { 1, threadPool }; - Map map(frontend, MapObserver::nullObserver(), threadPool, + HeadlessFrontend frontend { 1 }; + Map map(frontend, MapObserver::nullObserver(), MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize()), ResourceOptions().withCachePath(":memory:").withAssetPath("test/fixtures/api/assets")); map.getStyle().loadJSON(util::read_file("test/fixtures/api/water.json")); diff --git a/test/api/query.test.cpp b/test/api/query.test.cpp index ddf5df6aab..b80d3b7d8a 100644 --- a/test/api/query.test.cpp +++ b/test/api/query.test.cpp @@ -1,7 +1,6 @@ #include <mbgl/test/map_adapter.hpp> #include <mbgl/map/map_options.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/test/stub_file_source.hpp> #include <mbgl/test/util.hpp> #include <mbgl/util/image.hpp> @@ -35,9 +34,8 @@ public: util::RunLoop loop; std::shared_ptr<StubFileSource> fileSource = std::make_shared<StubFileSource>(); - ThreadPool threadPool { 4 }; - HeadlessFrontend frontend { 1, threadPool }; - MapAdapter map { frontend, MapObserver::nullObserver(), fileSource, threadPool, + HeadlessFrontend frontend { 1 }; + MapAdapter map { frontend, MapObserver::nullObserver(), fileSource, MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize())}; }; diff --git a/test/api/recycle_map.cpp b/test/api/recycle_map.cpp index 18cc9c00aa..55e19e3cd9 100644 --- a/test/api/recycle_map.cpp +++ b/test/api/recycle_map.cpp @@ -9,7 +9,6 @@ #include <mbgl/style/sources/geojson_source.hpp> #include <mbgl/style/image.hpp> #include <mbgl/style/style.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/util/exception.hpp> #include <mbgl/util/geometry.hpp> #include <mbgl/util/geojson.hpp> @@ -23,11 +22,9 @@ using namespace mbgl::style; TEST(API, RecycleMapUpdateImages) { util::RunLoop loop; - ThreadPool threadPool(4); - - HeadlessFrontend frontend { 1, threadPool }; + HeadlessFrontend frontend { 1 }; auto map = std::make_unique<MapAdapter>(frontend, MapObserver::nullObserver(), - std::make_shared<StubFileSource>(), threadPool, + std::make_shared<StubFileSource>(), MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize())); EXPECT_TRUE(map); diff --git a/test/gl/context.test.cpp b/test/gl/context.test.cpp index b8fe895c44..756f2c58d4 100644 --- a/test/gl/context.test.cpp +++ b/test/gl/context.test.cpp @@ -4,7 +4,6 @@ #include <mbgl/gl/context.hpp> #include <mbgl/map/map.hpp> #include <mbgl/map/map_options.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/gfx/backend_scope.hpp> #include <mbgl/gl/defines.hpp> #include <mbgl/gl/headless_frontend.hpp> @@ -88,11 +87,9 @@ struct Buffer { TEST(GLContextMode, Shared) { util::RunLoop loop; - ThreadPool threadPool(4); + HeadlessFrontend frontend { 1, {}, gfx::ContextMode::Shared }; - HeadlessFrontend frontend { 1, threadPool, {}, gfx::ContextMode::Shared }; - - Map map(frontend, MapObserver::nullObserver(), threadPool, + Map map(frontend, MapObserver::nullObserver(), MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize()), ResourceOptions().withCachePath(":memory:").withAssetPath("test/fixtures/api/assets")); map.getStyle().loadJSON(util::read_file("test/fixtures/api/water.json")); diff --git a/test/map/map.test.cpp b/test/map/map.test.cpp index 3af2acdb8b..ee86ce7f77 100644 --- a/test/map/map.test.cpp +++ b/test/map/map.test.cpp @@ -9,7 +9,6 @@ #include <mbgl/gfx/backend_scope.hpp> #include <mbgl/gl/context.hpp> #include <mbgl/gl/headless_frontend.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/storage/resource_options.hpp> #include <mbgl/storage/network_status.hpp> #include <mbgl/storage/default_file_source.hpp> @@ -34,15 +33,14 @@ class MapTest { public: util::RunLoop runLoop; std::shared_ptr<FileSource> fileSource; - ThreadPool threadPool { 4 }; StubMapObserver observer; HeadlessFrontend frontend; MapAdapter map; MapTest(float pixelRatio = 1, MapMode mode = MapMode::Static) : fileSource(std::make_shared<FileSource>()) - , frontend(pixelRatio, threadPool) - , map(frontend, observer, fileSource, threadPool, + , frontend(pixelRatio) + , map(frontend, observer, fileSource, MapOptions().withMapMode(mode).withSize(frontend.getSize()).withPixelRatio(pixelRatio)) {} template <typename T = FileSource> @@ -50,8 +48,8 @@ public: float pixelRatio = 1, MapMode mode = MapMode::Static, typename std::enable_if<std::is_same<T, DefaultFileSource>::value>::type* = nullptr) : fileSource(std::make_shared<T>(cachePath, assetPath)) - , frontend(pixelRatio, threadPool) - , map(frontend, observer, fileSource, threadPool, + , frontend(pixelRatio) + , map(frontend, observer, fileSource, MapOptions().withMapMode(mode).withSize(frontend.getSize()).withPixelRatio(pixelRatio)) {} }; @@ -744,7 +742,6 @@ TEST(Map, DontLoadUnneededTiles) { TEST(Map, TEST_DISABLED_ON_CI(ContinuousRendering)) { util::RunLoop runLoop; - ThreadPool threadPool { 4 }; using namespace std::chrono_literals; @@ -756,7 +753,7 @@ TEST(Map, TEST_DISABLED_ON_CI(ContinuousRendering)) { util::Timer timer; - HeadlessFrontend frontend(1, threadPool); + HeadlessFrontend frontend(1); StubMapObserver observer; observer.didFinishRenderingFrameCallback = [&] (MapObserver::RenderMode) { @@ -768,7 +765,7 @@ TEST(Map, TEST_DISABLED_ON_CI(ContinuousRendering)) { }); }; - Map map(frontend, observer, threadPool, + Map map(frontend, observer, MapOptions().withMapMode(MapMode::Continuous).withSize(frontend.getSize()), ResourceOptions().withCachePath(":memory:").withAssetPath("test/fixtures/api/assets")); map.getStyle().loadJSON(util::read_file("test/fixtures/api/water.json")); diff --git a/test/map/prefetch.test.cpp b/test/map/prefetch.test.cpp index 3232c99a22..071c918427 100644 --- a/test/map/prefetch.test.cpp +++ b/test/map/prefetch.test.cpp @@ -6,7 +6,6 @@ #include <mbgl/map/map_options.hpp> #include <mbgl/gl/headless_frontend.hpp> #include <mbgl/style/style.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/util/image.hpp> #include <mbgl/util/io.hpp> #include <mbgl/util/run_loop.hpp> @@ -22,7 +21,6 @@ using namespace std::chrono_literals; TEST(Map, PrefetchTiles) { util::RunLoop runLoop; - ThreadPool threadPool(4); std::shared_ptr<StubFileSource> fileSource = std::make_shared<StubFileSource>(); util::Timer emergencyShutoff; @@ -36,8 +34,8 @@ TEST(Map, PrefetchTiles) { runLoop.stop(); }; - HeadlessFrontend frontend { { 512, 512 }, 1, threadPool }; - MapAdapter map(frontend, observer, fileSource, threadPool, + HeadlessFrontend frontend { { 512, 512 }, 1 }; + MapAdapter map(frontend, observer, fileSource, MapOptions().withMapMode(MapMode::Continuous).withSize(frontend.getSize())); std::vector<int> tiles; diff --git a/test/renderer/image_manager.test.cpp b/test/renderer/image_manager.test.cpp index 7f0d670846..87a24e3bd3 100644 --- a/test/renderer/image_manager.test.cpp +++ b/test/renderer/image_manager.test.cpp @@ -9,7 +9,6 @@ #include <mbgl/util/io.hpp> #include <mbgl/util/image.hpp> #include <mbgl/util/run_loop.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/util/string.hpp> #include <utility> diff --git a/test/sprite/sprite_loader.test.cpp b/test/sprite/sprite_loader.test.cpp index 3691572265..122e711f51 100644 --- a/test/sprite/sprite_loader.test.cpp +++ b/test/sprite/sprite_loader.test.cpp @@ -8,7 +8,6 @@ #include <mbgl/util/io.hpp> #include <mbgl/util/image.hpp> #include <mbgl/util/run_loop.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/util/string.hpp> #include <utility> @@ -37,7 +36,6 @@ public: util::RunLoop loop; StubFileSource fileSource; StubSpriteLoaderObserver observer; - ThreadPool threadPool { 1 }; SpriteLoader spriteLoader{ 1 }; void run() { @@ -45,7 +43,7 @@ public: Log::setObserver(std::make_unique<Log::NullObserver>()); spriteLoader.setObserver(&observer); - spriteLoader.load("test/fixtures/resources/sprite", threadPool, fileSource); + spriteLoader.load("test/fixtures/resources/sprite", fileSource); loop.run(); } diff --git a/test/src/mbgl/test/map_adapter.hpp b/test/src/mbgl/test/map_adapter.hpp index 5bdab1d164..d4af579ae1 100644 --- a/test/src/mbgl/test/map_adapter.hpp +++ b/test/src/mbgl/test/map_adapter.hpp @@ -13,9 +13,8 @@ public: explicit MapAdapter(RendererFrontend& frontend, MapObserver& observer, std::shared_ptr<FileSource> fileSource, - Scheduler& scheduler, const MapOptions& options) - : Map(std::make_unique<Map::Impl>(frontend, observer, scheduler, std::move(fileSource), options)) {} + : Map(std::make_unique<Map::Impl>(frontend, observer, std::move(fileSource), options)) {} }; } // namespace mbgl diff --git a/test/src/mbgl/test/test.cpp b/test/src/mbgl/test/test.cpp index 4c3dad1727..1c77aae2a1 100644 --- a/test/src/mbgl/test/test.cpp +++ b/test/src/mbgl/test/test.cpp @@ -1,3 +1,4 @@ +#include <mbgl/actor/scheduler.hpp> #include <mbgl/test.hpp> #include <mbgl/test/util.hpp> diff --git a/test/style/source.test.cpp b/test/style/source.test.cpp index f0ff1f81b4..289e41c75f 100644 --- a/test/style/source.test.cpp +++ b/test/style/source.test.cpp @@ -31,7 +31,6 @@ #include <mbgl/util/image.hpp> #include <mbgl/util/tileset.hpp> -#include <mbgl/util/shared_thread_pool.hpp> #include <mbgl/util/logging.hpp> #include <mbgl/util/optional.hpp> #include <mbgl/util/range.hpp> @@ -55,8 +54,7 @@ public: StubRenderSourceObserver renderSourceObserver; Transform transform; TransformState transformState; - ThreadPool threadPool { 1 }; - Style style { loop, fileSource, 1 }; + Style style { fileSource, 1 }; AnnotationManager annotationManager { style }; ImageManager imageManager; GlyphManager glyphManager { fileSource }; @@ -65,7 +63,6 @@ public: 1.0, MapDebugOptions(), transformState, - threadPool, fileSource, MapMode::Continuous, annotationManager, @@ -763,7 +760,6 @@ TEST(Source, ImageSourceImageUpdate) { TEST(Source, CustomGeometrySourceSetTileData) { SourceTest test; - std::shared_ptr<ThreadPool> threadPool = sharedThreadPool(); CustomGeometrySource source("source", CustomGeometrySource::Options()); source.loadDescription(test.fileSource); diff --git a/test/style/style.test.cpp b/test/style/style.test.cpp index 7f57651331..72f74d3b01 100644 --- a/test/style/style.test.cpp +++ b/test/style/style.test.cpp @@ -9,7 +9,6 @@ #include <mbgl/style/layers/line_layer.hpp> #include <mbgl/util/io.hpp> #include <mbgl/util/run_loop.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <memory> @@ -19,9 +18,8 @@ using namespace mbgl::style; TEST(Style, Properties) { util::RunLoop loop; - ThreadPool threadPool{ 1 }; StubFileSource fileSource; - Style::Impl style { threadPool, fileSource, 1.0 }; + Style::Impl style { fileSource, 1.0 }; style.loadJSON(R"STYLE({"name": "Test"})STYLE"); ASSERT_EQ("Test", style.getName()); @@ -62,9 +60,8 @@ TEST(Style, Properties) { TEST(Style, DuplicateSource) { util::RunLoop loop; - ThreadPool threadPool{ 1 }; StubFileSource fileSource; - Style::Impl style { threadPool, fileSource, 1.0 }; + Style::Impl style { fileSource, 1.0 }; style.loadJSON(util::read_file("test/fixtures/resources/style-unused-sources.json")); @@ -84,9 +81,8 @@ TEST(Style, RemoveSourceInUse) { auto log = new FixtureLogObserver(); Log::setObserver(std::unique_ptr<Log::Observer>(log)); - ThreadPool threadPool{ 1 }; StubFileSource fileSource; - Style::Impl style { threadPool, fileSource, 1.0 }; + Style::Impl style { fileSource, 1.0 }; style.loadJSON(util::read_file("test/fixtures/resources/style-unused-sources.json")); diff --git a/test/style/style_layer.test.cpp b/test/style/style_layer.test.cpp index 7598d888e9..d6a926c631 100644 --- a/test/style/style_layer.test.cpp +++ b/test/style/style_layer.test.cpp @@ -21,7 +21,6 @@ #include <mbgl/test/stub_file_source.hpp> #include <mbgl/util/color.hpp> #include <mbgl/util/run_loop.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/util/io.hpp> #include <memory> @@ -283,9 +282,8 @@ TEST(Layer, DuplicateLayer) { util::RunLoop loop; // Setup style - ThreadPool threadPool{ 1 }; StubFileSource fileSource; - Style::Impl style { threadPool, fileSource, 1.0 }; + Style::Impl style { fileSource, 1.0 }; style.loadJSON(util::read_file("test/fixtures/resources/style-unused-sources.json")); // Add initial layer diff --git a/test/text/local_glyph_rasterizer.test.cpp b/test/text/local_glyph_rasterizer.test.cpp index f21ac0b883..4c0719e16c 100644 --- a/test/text/local_glyph_rasterizer.test.cpp +++ b/test/text/local_glyph_rasterizer.test.cpp @@ -8,7 +8,6 @@ #include <mbgl/util/color.hpp> #include <mbgl/renderer/renderer.hpp> #include <mbgl/gl/headless_frontend.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/style/style.hpp> /* @@ -34,15 +33,14 @@ namespace { class LocalGlyphRasterizerTest { public: LocalGlyphRasterizerTest(const optional<std::string> fontFamily) - : frontend(1, threadPool, optional<std::string>(), gfx::ContextMode::Unique, fontFamily) + : frontend(1, optional<std::string>(), gfx::ContextMode::Unique, fontFamily) { } util::RunLoop loop; std::shared_ptr<StubFileSource> fileSource = std::make_shared<StubFileSource>(); - ThreadPool threadPool { 4 }; HeadlessFrontend frontend; - MapAdapter map { frontend, MapObserver::nullObserver(), fileSource, threadPool, + MapAdapter map { frontend, MapObserver::nullObserver(), fileSource, MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize())}; void checkRendering(const char * name) { diff --git a/test/tile/custom_geometry_tile.test.cpp b/test/tile/custom_geometry_tile.test.cpp index 7a627bad88..50bc7d0e8f 100644 --- a/test/tile/custom_geometry_tile.test.cpp +++ b/test/tile/custom_geometry_tile.test.cpp @@ -5,7 +5,6 @@ #include <mbgl/tile/custom_geometry_tile.hpp> #include <mbgl/style/custom_tile_loader.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/util/run_loop.hpp> #include <mbgl/map/transform.hpp> #include <mbgl/renderer/tile_parameters.hpp> @@ -26,8 +25,7 @@ public: FakeFileSource fileSource; TransformState transformState; util::RunLoop loop; - ThreadPool threadPool { 1 }; - style::Style style { loop, fileSource, 1 }; + style::Style style { fileSource, 1 }; AnnotationManager annotationManager { style }; ImageManager imageManager; GlyphManager glyphManager { fileSource }; @@ -36,7 +34,6 @@ public: 1.0, MapDebugOptions(), transformState, - threadPool, fileSource, MapMode::Continuous, annotationManager, diff --git a/test/tile/geojson_tile.test.cpp b/test/tile/geojson_tile.test.cpp index 772590efb2..4f4435182f 100644 --- a/test/tile/geojson_tile.test.cpp +++ b/test/tile/geojson_tile.test.cpp @@ -4,7 +4,6 @@ #include <mbgl/tile/geojson_tile.hpp> #include <mbgl/tile/tile_loader_impl.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/util/run_loop.hpp> #include <mbgl/map/transform.hpp> #include <mbgl/renderer/tile_parameters.hpp> @@ -25,8 +24,7 @@ public: FakeFileSource fileSource; TransformState transformState; util::RunLoop loop; - ThreadPool threadPool { 1 }; - style::Style style { loop, fileSource, 1 }; + style::Style style { fileSource, 1 }; AnnotationManager annotationManager { style }; ImageManager imageManager; GlyphManager glyphManager { fileSource }; @@ -36,7 +34,6 @@ public: 1.0, MapDebugOptions(), transformState, - threadPool, fileSource, MapMode::Continuous, annotationManager, diff --git a/test/tile/raster_dem_tile.test.cpp b/test/tile/raster_dem_tile.test.cpp index 5a6f5a8c9a..e2e7d44b9b 100644 --- a/test/tile/raster_dem_tile.test.cpp +++ b/test/tile/raster_dem_tile.test.cpp @@ -4,7 +4,6 @@ #include <mbgl/tile/tile_loader_impl.hpp> #include <mbgl/style/style.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/util/run_loop.hpp> #include <mbgl/map/transform.hpp> #include <mbgl/annotation/annotation_manager.hpp> @@ -20,8 +19,7 @@ public: FakeFileSource fileSource; TransformState transformState; util::RunLoop loop; - ThreadPool threadPool { 1 }; - style::Style style { loop, fileSource, 1 }; + style::Style style { fileSource, 1 }; AnnotationManager annotationManager { style }; ImageManager imageManager; GlyphManager glyphManager { fileSource }; @@ -31,7 +29,6 @@ public: 1.0, MapDebugOptions(), transformState, - threadPool, fileSource, MapMode::Continuous, annotationManager, diff --git a/test/tile/raster_tile.test.cpp b/test/tile/raster_tile.test.cpp index 8b2b3dee61..2e35a94025 100644 --- a/test/tile/raster_tile.test.cpp +++ b/test/tile/raster_tile.test.cpp @@ -4,7 +4,6 @@ #include <mbgl/tile/tile_loader_impl.hpp> #include <mbgl/style/style.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/util/run_loop.hpp> #include <mbgl/map/transform.hpp> #include <mbgl/annotation/annotation_manager.hpp> @@ -20,8 +19,7 @@ public: FakeFileSource fileSource; TransformState transformState; util::RunLoop loop; - ThreadPool threadPool { 1 }; - style::Style style { loop, fileSource, 1 }; + style::Style style { fileSource, 1 }; AnnotationManager annotationManager { style }; ImageManager imageManager; GlyphManager glyphManager { fileSource }; @@ -31,7 +29,6 @@ public: 1.0, MapDebugOptions(), transformState, - threadPool, fileSource, MapMode::Continuous, annotationManager, diff --git a/test/tile/vector_tile.test.cpp b/test/tile/vector_tile.test.cpp index ed3eda7863..c610d8c1a7 100644 --- a/test/tile/vector_tile.test.cpp +++ b/test/tile/vector_tile.test.cpp @@ -4,7 +4,6 @@ #include <mbgl/tile/vector_tile_data.hpp> #include <mbgl/tile/tile_loader_impl.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/util/run_loop.hpp> #include <mbgl/map/transform.hpp> #include <mbgl/style/style.hpp> @@ -26,8 +25,7 @@ public: FakeFileSource fileSource; TransformState transformState; util::RunLoop loop; - ThreadPool threadPool { 1 }; - style::Style style { loop, fileSource, 1 }; + style::Style style { fileSource, 1 }; AnnotationManager annotationManager { style }; ImageManager imageManager; GlyphManager glyphManager { fileSource }; @@ -37,7 +35,6 @@ public: 1.0, MapDebugOptions(), transformState, - threadPool, fileSource, MapMode::Continuous, annotationManager, diff --git a/test/util/async_task.test.cpp b/test/util/async_task.test.cpp index f3025e8952..682926a17d 100644 --- a/test/util/async_task.test.cpp +++ b/test/util/async_task.test.cpp @@ -1,14 +1,15 @@ #include <mbgl/util/async_task.hpp> -#include <mbgl/util/run_loop.hpp> -#include <mbgl/util/default_thread_pool.hpp> -#include <mbgl/actor/actor_ref.hpp> +#include <mbgl/actor/actor_ref.hpp> +#include <mbgl/actor/scheduler.hpp> #include <mbgl/test/util.hpp> +#include <mbgl/util/run_loop.hpp> #include <atomic> #include <future> #include <vector> +using namespace mbgl; using namespace mbgl::util; namespace { @@ -104,11 +105,11 @@ TEST(AsyncTask, RequestCoalescingMultithreaded) { unsigned count = 0, numThreads = 25; AsyncTask async([&count] { ++count; }); - mbgl::ThreadPool threads(numThreads); - auto mailbox = std::make_shared<mbgl::Mailbox>(threads); + auto retainer = Scheduler::GetBackground(); + auto mailbox = std::make_shared<Mailbox>(*retainer); TestWorker worker(&async); - mbgl::ActorRef<TestWorker> workerRef(worker, mailbox); + ActorRef<TestWorker> workerRef(worker, mailbox); for (unsigned i = 0; i < numThreads; ++i) { workerRef.invoke(&TestWorker::run); @@ -133,11 +134,11 @@ TEST(AsyncTask, ThreadSafety) { AsyncTask async([&count] { ++count; }); - mbgl::ThreadPool threads(numThreads); - auto mailbox = std::make_shared<mbgl::Mailbox>(threads); + auto retainer = Scheduler::GetBackground(); + auto mailbox = std::make_shared<Mailbox>(*retainer); TestWorker worker(&async); - mbgl::ActorRef<TestWorker> workerRef(worker, mailbox); + ActorRef<TestWorker> workerRef(worker, mailbox); for (unsigned i = 0; i < numThreads; ++i) { // The callback runs on the worker, thus the atomic type. diff --git a/test/util/memory.test.cpp b/test/util/memory.test.cpp index e3ad976432..8602e6ac5b 100644 --- a/test/util/memory.test.cpp +++ b/test/util/memory.test.cpp @@ -5,7 +5,6 @@ #include <mbgl/map/map_options.hpp> #include <mbgl/gl/headless_frontend.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/util/io.hpp> #include <mbgl/util/run_loop.hpp> #include <mbgl/style/style.hpp> @@ -37,7 +36,6 @@ public: util::RunLoop runLoop; std::shared_ptr<StubFileSource> fileSource = std::make_shared<StubFileSource>(); - ThreadPool threadPool { 4 }; private: Response response(const std::string& path) { @@ -72,8 +70,8 @@ TEST(Memory, Vector) { MemoryTest test; float ratio { 2 }; - HeadlessFrontend frontend { { 256, 256 }, ratio, test.threadPool }; - MapAdapter map(frontend, MapObserver::nullObserver(), test.fileSource, test.threadPool, + HeadlessFrontend frontend { { 256, 256 }, ratio }; + MapAdapter map(frontend, MapObserver::nullObserver(), test.fileSource, MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize()).withPixelRatio(ratio)); map.jumpTo(CameraOptions().withZoom(16)); map.getStyle().loadURL("mapbox://streets"); @@ -85,8 +83,8 @@ TEST(Memory, Raster) { MemoryTest test; float ratio { 2 }; - HeadlessFrontend frontend { { 256, 256 }, ratio, test.threadPool }; - MapAdapter map(frontend, MapObserver::nullObserver(), test.fileSource, test.threadPool, + HeadlessFrontend frontend { { 256, 256 }, ratio }; + MapAdapter map(frontend, MapObserver::nullObserver(), test.fileSource, MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize()).withPixelRatio(ratio)); map.getStyle().loadURL("mapbox://satellite"); @@ -123,8 +121,8 @@ TEST(Memory, Footprint) { class FrontendAndMap { public: FrontendAndMap(MemoryTest& test_, const char* style) - : frontend(Size{ 256, 256 }, 2, test_.threadPool) - , map(frontend, MapObserver::nullObserver(), test_.fileSource, test_.threadPool, + : frontend(Size{ 256, 256 }, 2) + , map(frontend, MapObserver::nullObserver(), test_.fileSource, MapOptions().withMapMode(MapMode::Static).withSize(frontend.getSize()).withPixelRatio(2)) { map.jumpTo(CameraOptions().withZoom(16)); map.getStyle().loadURL(style); diff --git a/test/util/thread.test.cpp b/test/util/thread.test.cpp index 2bcb9d8959..49735585c6 100644 --- a/test/util/thread.test.cpp +++ b/test/util/thread.test.cpp @@ -1,8 +1,9 @@ +#include <mbgl/util/thread.hpp> + #include <mbgl/actor/actor_ref.hpp> +#include <mbgl/actor/scheduler.hpp> #include <mbgl/test/util.hpp> -#include <mbgl/util/default_thread_pool.hpp> #include <mbgl/util/run_loop.hpp> -#include <mbgl/util/thread.hpp> #include <mbgl/util/timer.hpp> #include <atomic> @@ -139,8 +140,7 @@ TEST(Thread, Concurrency) { unsigned numMessages = 100000; std::atomic_uint completed(numMessages); - ThreadPool threadPool(10); - Actor<TestWorker> poolWorker(threadPool); + Actor<TestWorker> poolWorker(Scheduler::GetBackground()); auto poolWorkerRef = poolWorker.self(); Thread<TestWorker> threadedObject("Test"); @@ -165,8 +165,7 @@ TEST(Thread, Concurrency) { TEST(Thread, ThreadPoolMessaging) { auto loop = std::make_shared<RunLoop>(); - ThreadPool threadPool(1); - Actor<TestWorker> poolWorker(threadPool); + Actor<TestWorker> poolWorker(Scheduler::GetBackground()); auto poolWorkerRef = poolWorker.self(); Thread<TestWorker> threadedObject("Test"); |