Chromium Code Reviews| Index: runtime/vm/os_thread_android.cc |
| diff --git a/runtime/vm/os_thread_android.cc b/runtime/vm/os_thread_android.cc |
| index c02fd9ab4a81b6f281a06b0b3721b7a8a82ccdc6..9b93cbe70940f5ee6a532286164279c8cfea6edb 100644 |
| --- a/runtime/vm/os_thread_android.cc |
| +++ b/runtime/vm/os_thread_android.cc |
| @@ -336,6 +336,22 @@ Monitor::~Monitor() { |
| } |
| +bool Monitor::TryEnter() { |
| + int result = pthread_mutex_trylock(data_.mutex()); |
| + // Return false if the lock is busy and locking failed. |
|
srdjan
2016/03/01 16:46:23
Maybe copy this comment into class definition, as
siva
2016/03/01 18:59:54
Done.
|
| + if (result == EBUSY) { |
| + return false; |
| + } |
| + ASSERT_PTHREAD_SUCCESS(result); // Verify no other errors. |
| +#if defined(DEBUG) |
| + // When running with assertions enabled we track the owner. |
| + ASSERT(owner_ == OSThread::kInvalidThreadId); |
| + owner_ = OSThread::GetCurrentThreadId(); |
| +#endif // defined(DEBUG) |
| + return true; |
| +} |
| + |
| + |
| void Monitor::Enter() { |
| int result = pthread_mutex_lock(data_.mutex()); |
| VALIDATE_PTHREAD_RESULT(result); |