diff --git a/common/foundation_request.mm b/common/foundation_request.mm index 4684ff55f..b7eafdb96 100644 --- a/common/foundation_request.mm +++ b/common/foundation_request.mm @@ -12,28 +12,15 @@ #include #include #include -#include +#include -uv_once_t request_initialize = UV_ONCE_INIT; +dispatch_once_t request_initialize = 0; NSURLSession *session = nullptr; #if TARGET_OS_IPHONE std::atomic 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_http(const std::string &url, std::function callback, std::shared_ptr 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 req = std::make_shared(url, callback, loop); diff --git a/mapboxgl.gyp b/mapboxgl.gyp index b7944d6a1..fa544b18f 100644 --- a/mapboxgl.gyp +++ b/mapboxgl.gyp @@ -41,7 +41,7 @@ { 'action_name': 'Touch Stylesheet Directory', 'inputs': ['styles'], - 'outputs': ['styles'], + 'outputs': [], 'action': ['touch', 'styles'], # required for xcode http://openradar.appspot.com/7232149 } ],