Snap for 6686801 from 14227d7d78195a680511d81d8ae660fe81d2cb57 to rvc-qpr1-release
Change-Id: I01ca8aeab398a7a41e926d925c8111578e98af81
diff --git a/runtime/base/mutex.cc b/runtime/base/mutex.cc
index 0d1b162..0b8c781 100644
--- a/runtime/base/mutex.cc
+++ b/runtime/base/mutex.cc
@@ -457,7 +457,8 @@
SleepIfRuntimeDeleted(self);
// Retry until not held. In heavy contention situations we otherwise get redundant
// futex wakeups as a result of repeatedly decrementing and incrementing contenders.
- } while ((state_and_contenders_.load(std::memory_order_relaxed) & kHeldMask) != 0);
+ cur_state = state_and_contenders_.load(std::memory_order_relaxed);
+ } while ((cur_state & kHeldMask) != 0);
decrement_contenders();
}
}