| Index: runtime/vm/os_thread_macos.cc
|
| diff --git a/runtime/vm/os_thread_macos.cc b/runtime/vm/os_thread_macos.cc
|
| index 2b870db479d3852a36d82897db5bd6e8f6c93edc..6a9aca22cd58317ef9b058668dc4fc72f2d8b9d9 100644
|
| --- a/runtime/vm/os_thread_macos.cc
|
| +++ b/runtime/vm/os_thread_macos.cc
|
| @@ -31,6 +31,14 @@ namespace dart {
|
| }
|
|
|
|
|
| +#if defined(DEBUG)
|
| +#define ASSERT_PTHREAD_SUCCESS(result) VALIDATE_PTHREAD_RESULT(result)
|
| +#else
|
| +// NOTE: This (currently) expands to a no-op.
|
| +#define ASSERT_PTHREAD_SUCCESS(result) ASSERT(result == 0)
|
| +#endif
|
| +
|
| +
|
| #ifdef DEBUG
|
| #define RETURN_ON_PTHREAD_FAILURE(result) \
|
| if (result != 0) { \
|
| @@ -223,7 +231,7 @@ void Mutex::Lock() {
|
| int result = pthread_mutex_lock(data_.mutex());
|
| // Specifically check for dead lock to help debugging.
|
| ASSERT(result != EDEADLK);
|
| - ASSERT(result == 0); // Verify no other errors.
|
| + ASSERT_PTHREAD_SUCCESS(result); // Verify no other errors.
|
| // When running with assertions enabled we do track the owner.
|
| #if defined(DEBUG)
|
| owner_ = OSThread::GetCurrentThreadId();
|
| @@ -237,7 +245,7 @@ bool Mutex::TryLock() {
|
| if ((result == EBUSY) || (result == EDEADLK)) {
|
| return false;
|
| }
|
| - ASSERT(result == 0); // Verify no other errors.
|
| + ASSERT_PTHREAD_SUCCESS(result); // Verify no other errors.
|
| // When running with assertions enabled we do track the owner.
|
| #if defined(DEBUG)
|
| owner_ = OSThread::GetCurrentThreadId();
|
| @@ -255,7 +263,7 @@ void Mutex::Unlock() {
|
| int result = pthread_mutex_unlock(data_.mutex());
|
| // Specifically check for wrong thread unlocking to aid debugging.
|
| ASSERT(result != EPERM);
|
| - ASSERT(result == 0); // Verify no other errors.
|
| + ASSERT_PTHREAD_SUCCESS(result); // Verify no other errors.
|
| }
|
|
|
|
|
|
|