Index: runtime/vm/os_thread_android.cc |
diff --git a/runtime/vm/os_thread_android.cc b/runtime/vm/os_thread_android.cc |
index 6f7ff3435a0ed6c7fc817c05811e7d5b35bf64d1..65ec1737af568920091c9b21582c2ad7715a9ba7 100644 |
--- a/runtime/vm/os_thread_android.cc |
+++ b/runtime/vm/os_thread_android.cc |
@@ -211,7 +211,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); |
@@ -221,6 +221,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); |