summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2014-08-12 11:54:11 +0200
committerKonstantin Käfer <mail@kkaefer.com>2014-08-12 11:54:11 +0200
commit919947e6c7e1e414e9c9f462d1bf3769db73ecf1 (patch)
treee818438dcf2fc38d69f438faef055b13d911a0d0 /common
parent6f802642917136eb29d385d31d1817a98b562bbe (diff)
downloadqtlocation-mapboxgl-919947e6c7e1e414e9c9f462d1bf3769db73ecf1.tar.gz
remove uv.h dependency in darwin-specific code
Diffstat (limited to 'common')
-rw-r--r--common/foundation_request.mm31
1 files changed, 15 insertions, 16 deletions
diff --git a/common/foundation_request.mm b/common/foundation_request.mm
index 4684ff55fb..b7eafdb96c 100644
--- a/common/foundation_request.mm
+++ b/common/foundation_request.mm
@@ -12,28 +12,15 @@
#include <mbgl/platform/request.hpp>
#include <mbgl/platform/platform.hpp>
#include <mbgl/util/std.hpp>
-#include <uv.h>
+#include <mbgl/util/uv.hpp>
-uv_once_t request_initialize = UV_ONCE_INIT;
+dispatch_once_t request_initialize = 0;
NSURLSession *session = nullptr;
#if TARGET_OS_IPHONE
std::atomic<int> active_tasks;
#endif
-void request_initialize_cb() {
- NSURLSessionConfiguration *sessionConfig =
- [NSURLSessionConfiguration defaultSessionConfiguration];
- sessionConfig.timeoutIntervalForResource = 30;
- sessionConfig.HTTPMaximumConnectionsPerHost = 8;
- sessionConfig.requestCachePolicy = NSURLRequestUseProtocolCachePolicy;
-
- session = [NSURLSession sessionWithConfiguration:sessionConfig];
-
-#if TARGET_OS_IPHONE
- active_tasks = 0;
-#endif
-}
// We're using a child class to make sure ARC is working correctly, as well as to add activity
// indicators on iOS.
@@ -69,7 +56,19 @@ std::shared_ptr<mbgl::platform::Request>
mbgl::platform::request_http(const std::string &url,
std::function<void(Response *)> callback,
std::shared_ptr<uv::loop> loop) {
- uv_once(&request_initialize, request_initialize_cb);
+ dispatch_once(&request_initialize, ^{
+ NSURLSessionConfiguration *sessionConfig =
+ [NSURLSessionConfiguration defaultSessionConfiguration];
+ sessionConfig.timeoutIntervalForResource = 30;
+ sessionConfig.HTTPMaximumConnectionsPerHost = 8;
+ sessionConfig.requestCachePolicy = NSURLRequestUseProtocolCachePolicy;
+
+ session = [NSURLSession sessionWithConfiguration:sessionConfig];
+
+#if TARGET_OS_IPHONE
+ active_tasks = 0;
+#endif
+ });
std::shared_ptr<FoundationRequest> req =
std::make_shared<FoundationRequest>(url, callback, loop);