Index: runtime/vm/os_thread_macos.cc |
diff --git a/runtime/vm/os_thread_macos.cc b/runtime/vm/os_thread_macos.cc |
index 2fa58d85456e73334b5501e2b501079ca4070e90..478c1e090656fd439d153c5ae1d3874187bc73ff 100644 |
--- a/runtime/vm/os_thread_macos.cc |
+++ b/runtime/vm/os_thread_macos.cc |
@@ -217,7 +217,7 @@ void OSThread::GetThreadCpuUsage(ThreadId thread_id, int64_t* cpu_usage) { |
} |
-Mutex::Mutex() { |
+Mutex::Mutex(bool recursive) { |
pthread_mutexattr_t attr; |
int result = pthread_mutexattr_init(&attr); |
VALIDATE_PTHREAD_RESULT(result); |
@@ -227,6 +227,11 @@ Mutex::Mutex() { |
VALIDATE_PTHREAD_RESULT(result); |
#endif // defined(DEBUG) |
+ if (recursive) { |
+ result = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); |
+ VALIDATE_PTHREAD_RESULT(result); |
+ } |
+ |
result = pthread_mutex_init(data_.mutex(), &attr); |
// Verify that creating a pthread_mutex succeeded. |
VALIDATE_PTHREAD_RESULT(result); |