diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn index d9fe93e2e9..8fb8193520 100644 --- a/rtc_base/BUILD.gn +++ b/rtc_base/BUILD.gn @@ -542,10 +542,7 @@ if (rtc_enable_libevent) { if (is_mac || is_ios) { rtc_library("rtc_task_queue_gcd") { - visibility = [ - ":threading", - "../api/task_queue:default_task_queue_factory", - ] + visibility = [ "../api/task_queue:default_task_queue_factory" ] sources = [ "task_queue_gcd.cc", "task_queue_gcd.h", @@ -835,10 +832,7 @@ rtc_library("threading") { deps += [ ":win32" ] } if (is_mac || is_ios) { - deps += [ - ":rtc_task_queue_gcd", - "system:cocoa_threading", - ] + deps += [ "system:cocoa_threading" ] } } diff --git a/rtc_base/async_resolver.cc b/rtc_base/async_resolver.cc index 231e4fad98..0fd10977e2 100644 --- a/rtc_base/async_resolver.cc +++ b/rtc_base/async_resolver.cc @@ -41,11 +41,31 @@ #include "rtc_base/third_party/sigslot/sigslot.h" // for signal_with_thread... #if defined(WEBRTC_MAC) || defined(WEBRTC_IOS) -#include "rtc_base/task_queue_gcd.h" +#include #endif namespace rtc { +#if defined(WEBRTC_MAC) || defined(WEBRTC_IOS) +namespace { + +void GlobalGcdRunTask(void* context) { + std::unique_ptr task( + static_cast(context)); + task->Run(); +} + +// Post a task into the system-defined global concurrent queue. +void PostTaskToGlobalQueue(std::unique_ptr task) { + dispatch_queue_global_t global_queue = + dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + webrtc::QueuedTask* context = task.release(); + dispatch_async_f(global_queue, context, &GlobalGcdRunTask); +} + +} // namespace +#endif + int ResolveHostname(const std::string& hostname, int family, std::vector* addresses) { @@ -152,8 +172,7 @@ void AsyncResolver::Start(const SocketAddress& addr) { } }; #if defined(WEBRTC_MAC) || defined(WEBRTC_IOS) - webrtc::PostTaskToGlobalQueue( - webrtc::ToQueuedTask(std::move(thread_function))); + PostTaskToGlobalQueue(webrtc::ToQueuedTask(std::move(thread_function))); #else PlatformThread::SpawnDetached(std::move(thread_function), "AsyncResolver"); #endif diff --git a/rtc_base/task_queue_gcd.cc b/rtc_base/task_queue_gcd.cc index aefc207431..2276f635c5 100644 --- a/rtc_base/task_queue_gcd.cc +++ b/rtc_base/task_queue_gcd.cc @@ -145,24 +145,10 @@ class TaskQueueGcdFactory final : public TaskQueueFactory { } }; -// static -void GlobalGcdRunTask(void* context) { - std::unique_ptr task(static_cast(context)); - task->Run(); -} - } // namespace std::unique_ptr CreateTaskQueueGcdFactory() { return std::make_unique(); } -void PostTaskToGlobalQueue(std::unique_ptr task, - TaskQueueFactory::Priority priority) { - dispatch_queue_global_t global_queue = - dispatch_get_global_queue(TaskQueuePriorityToGCD(priority), 0); - QueuedTask* context = task.release(); - dispatch_async_f(global_queue, context, &GlobalGcdRunTask); -} - } // namespace webrtc diff --git a/rtc_base/task_queue_gcd.h b/rtc_base/task_queue_gcd.h index 898c2a3458..dc6039e99a 100644 --- a/rtc_base/task_queue_gcd.h +++ b/rtc_base/task_queue_gcd.h @@ -19,11 +19,6 @@ namespace webrtc { std::unique_ptr CreateTaskQueueGcdFactory(); -// Post a task into the system-defined global concurrent queue. -void PostTaskToGlobalQueue( - std::unique_ptr task, - TaskQueueFactory::Priority priority = TaskQueueFactory::Priority::NORMAL); - } // namespace webrtc #endif // RTC_BASE_TASK_QUEUE_GCD_H_