diff --git a/platform/default/sqlite_cache.cpp b/platform/default/sqlite_cache.cpp index 4450374a3..6ba21c281 100644 --- a/platform/default/sqlite_cache.cpp +++ b/platform/default/sqlite_cache.cpp @@ -67,7 +67,7 @@ SQLiteCache::SQLiteCache(const std::string& path_) SQLiteCache::~SQLiteCache() = default; -SQLiteCache::Impl::Impl(const std::string& path_) +SQLiteCache::Impl::Impl(uv_loop_t*, const std::string& path_) : path(path_) { } diff --git a/platform/default/sqlite_cache_impl.hpp b/platform/default/sqlite_cache_impl.hpp index 2ebaa284a..e01400a58 100644 --- a/platform/default/sqlite_cache_impl.hpp +++ b/platform/default/sqlite_cache_impl.hpp @@ -3,6 +3,8 @@ #include +typedef struct uv_loop_s uv_loop_t; + namespace mapbox { namespace sqlite { class Database; @@ -14,7 +16,7 @@ namespace mbgl { class SQLiteCache::Impl { public: - Impl(const std::string &path = ":memory:"); + Impl(uv_loop_t*, const std::string &path = ":memory:"); ~Impl(); std::unique_ptr get(const Resource&); diff --git a/src/mbgl/storage/default_file_source.cpp b/src/mbgl/storage/default_file_source.cpp index 7080809d7..8833f78fe 100644 --- a/src/mbgl/storage/default_file_source.cpp +++ b/src/mbgl/storage/default_file_source.cpp @@ -61,7 +61,7 @@ void DefaultFileSource::cancel(Request *req) { // ----- Impl ----- -DefaultFileSource::Impl::Impl(FileCache* cache_, const std::string& root) +DefaultFileSource::Impl::Impl(uv_loop_t*, FileCache* cache_, const std::string& root) : cache(cache_), assetRoot(root.empty() ? platform::assetRoot() : root) { } diff --git a/src/mbgl/storage/default_file_source_impl.hpp b/src/mbgl/storage/default_file_source_impl.hpp index 1d4da0906..50935ea3d 100644 --- a/src/mbgl/storage/default_file_source_impl.hpp +++ b/src/mbgl/storage/default_file_source_impl.hpp @@ -6,6 +6,8 @@ #include #include +typedef struct uv_loop_s uv_loop_t; + namespace mbgl { class RequestBase; @@ -22,7 +24,7 @@ struct DefaultFileRequest { class DefaultFileSource::Impl { public: - Impl(FileCache*, const std::string& = ""); + Impl(uv_loop_t*, FileCache*, const std::string& = ""); void add(Request*, uv_loop_t*); void cancel(Request*); diff --git a/src/mbgl/util/thread.hpp b/src/mbgl/util/thread.hpp index 4831b9efc..956e7718d 100644 --- a/src/mbgl/util/thread.hpp +++ b/src/mbgl/util/thread.hpp @@ -96,12 +96,12 @@ Thread::Thread(const std::string& name, Args&&... args) { template template void Thread::run(P&& params, index_sequence) { - Object object_(std::get(std::forward

(params))...); - object = &object_; - RunLoop loop_; loop = &loop_; + Object object_(loop_.get(), std::get(std::forward

(params))...); + object = &object_; + running.set_value(); loop_.run();