From 4a4f162f713a5c14725a1828e1213d1940f4fbd4 Mon Sep 17 00:00:00 2001 From: Markus Handell Date: Fri, 5 Jun 2020 11:21:10 +0200 Subject: [PATCH] Mutex, CriticalSection: Switch Mac to _PTHREAD_MUTEX_POLICY_FIRSTFIT. Fairshare mutexes performed really badly during a Catalina performance test. This change switches them to use the _PTHREAD_MUTEX_POLICY_FIRSTFIT policy instead. Bug: webrtc:11567, webrtc:11648 Change-Id: I2b8fbe3183beefc26f8d4ff3d63dc6958174605f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176504 Reviewed-by: Tommi Reviewed-by: Oskar Sundbom Commit-Queue: Tommi Cr-Commit-Position: refs/heads/master@{#31456} --- rtc_base/critical_section.cc | 2 +- rtc_base/synchronization/mutex_pthread.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rtc_base/critical_section.cc b/rtc_base/critical_section.cc index 4fad961209..c6b17ff1b2 100644 --- a/rtc_base/critical_section.cc +++ b/rtc_base/critical_section.cc @@ -43,7 +43,7 @@ CriticalSection::CriticalSection() { pthread_mutexattr_settype(&mutex_attribute, PTHREAD_MUTEX_RECURSIVE); #if defined(WEBRTC_MAC) pthread_mutexattr_setpolicy_np(&mutex_attribute, - _PTHREAD_MUTEX_POLICY_FAIRSHARE); + _PTHREAD_MUTEX_POLICY_FIRSTFIT); #endif pthread_mutex_init(&mutex_, &mutex_attribute); pthread_mutexattr_destroy(&mutex_attribute); diff --git a/rtc_base/synchronization/mutex_pthread.h b/rtc_base/synchronization/mutex_pthread.h index c3d9a7aff0..c9496e72c9 100644 --- a/rtc_base/synchronization/mutex_pthread.h +++ b/rtc_base/synchronization/mutex_pthread.h @@ -29,7 +29,7 @@ class RTC_LOCKABLE MutexImpl final { pthread_mutexattr_init(&mutex_attribute); #if defined(WEBRTC_MAC) pthread_mutexattr_setpolicy_np(&mutex_attribute, - _PTHREAD_MUTEX_POLICY_FAIRSHARE); + _PTHREAD_MUTEX_POLICY_FIRSTFIT); #endif pthread_mutex_init(&mutex_, &mutex_attribute); pthread_mutexattr_destroy(&mutex_attribute);