| Index: runtime/vm/os_thread_linux.cc
|
| diff --git a/runtime/vm/os_thread_linux.cc b/runtime/vm/os_thread_linux.cc
|
| index 4a08b84d2377ef98e2670088e5d5251bac760f31..4c24cc8a780e95df7837aeb1ca3b92ed92c4848a 100644
|
| --- a/runtime/vm/os_thread_linux.cc
|
| +++ b/runtime/vm/os_thread_linux.cc
|
| @@ -213,7 +213,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);
|
| @@ -223,6 +223,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);
|
|
|