| 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.
|
| + 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);
|
|
|