webrtc_m130/rtc_base/system/gcd_helpers.m
Yura Yaroshevich ebf739be7b Reland "Leverage dispatch_queue_create_with_target when possible."
This is a reland of de86381161651816c078adeb354902b15d03a35b

Original change's description:
> Leverage dispatch_queue_create_with_target when possible.
> 
> Replacing dispatch_queue_create followed by
> dispatch_set_target_queue with dispatch_queue_create_with_target
> is claimed to be source of GCD performance improvement:
> https://developer.apple.com/videos/play/wwdc2017/706/
> Video since 40 min. Slides since 199.
> 
> Bug: webrtc:9055
> Change-Id: I0136f7faaef0951a7ad243bc8772f3ee952d5470
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168491
> Reviewed-by: Tommi <tommi@webrtc.org>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Commit-Queue: Yura Yaroshevich <yura.yaroshevich@gmail.com>
> Cr-Commit-Position: refs/heads/master@{#30781}

Bug: webrtc:9055
Change-Id: I36b0b6423c81c0497f66f7c993741c33ff6ec5ba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170443
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30821}
2020-03-18 16:06:09 +00:00

22 lines
935 B
Objective-C

/*
* Copyright 2020 The WebRTC Project Authors. All rights reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "rtc_base/system/gcd_helpers.h"
dispatch_queue_t RTCDispatchQueueCreateWithTarget(const char *label,
dispatch_queue_attr_t attr,
dispatch_queue_t target) {
if (@available(iOS 10, macOS 10.12, tvOS 10, watchOS 3, *)) {
return dispatch_queue_create_with_target(label, attr, target);
}
dispatch_queue_t queue = dispatch_queue_create(label, attr);
dispatch_set_target_queue(queue, target);
return queue;
}