diff options
Diffstat (limited to 'test/storage/asset_file_source.test.cpp')
-rw-r--r-- | test/storage/asset_file_source.test.cpp | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/test/storage/asset_file_source.test.cpp b/test/storage/asset_file_source.test.cpp index 010a2c9dc7..a39d2963d2 100644 --- a/test/storage/asset_file_source.test.cpp +++ b/test/storage/asset_file_source.test.cpp @@ -3,8 +3,10 @@ #include <mbgl/util/chrono.hpp> #include <mbgl/util/run_loop.hpp> #include <mbgl/util/thread.hpp> +#include <mbgl/actor/actor_ref.hpp> #include <gtest/gtest.h> +#include <atomic> using namespace mbgl; @@ -20,16 +22,11 @@ TEST(AssetFileSource, Load) { #else unsigned numThreads = 50; #endif - - auto callback = [&] { - if (!--numThreads) { - loop.stop(); - } - }; + std::atomic_uint completed(numThreads); class TestWorker { public: - TestWorker(mbgl::AssetFileSource* fs_) : fs(fs_) {} + TestWorker(ActorRef<TestWorker>, mbgl::AssetFileSource* fs_) : fs(fs_) {} void run(std::function<void()> endCallback) { const std::string asset("asset://nonempty"); @@ -60,16 +57,12 @@ TEST(AssetFileSource, Load) { }; std::vector<std::unique_ptr<util::Thread<TestWorker>>> threads; - std::vector<std::unique_ptr<mbgl::AsyncRequest>> requests; - util::ThreadContext context = { "Test" }; for (unsigned i = 0; i < numThreads; ++i) { std::unique_ptr<util::Thread<TestWorker>> thread = - std::make_unique<util::Thread<TestWorker>>(context, &fs); - - requests.push_back( - thread->invokeWithCallback(&TestWorker::run, callback)); + std::make_unique<util::Thread<TestWorker>>("Test", &fs); + thread->actor().invoke(&TestWorker::run, [&] { if (!--completed) loop.stop(); }); threads.push_back(std::move(thread)); } |