Snap for 6683785 from d2f1b904b21727ebdaf308c2d366464a2470fea9 to rvc-d1-release
Change-Id: I2e2566ed551146572a903c3c1e00b31677cf3e08
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();
}
}