Speed up and slightly simplify Mutex
Eliminate the separate seqentially consistent contention counter load in Mutex::ExclusiveUnlock by putting the contenion counter in the Mutex's state word. Replace some CHECK_GE checks with CHECK_GT. We were checking quantities intended to be non-negative against >= 0 just before decrementing them. Remove a pointless volatile declaration. Introduce constants for the first FUTEX_WAKE argument. Remove all uses of -1 as that argument, everywhere in ART. It appears to work, but the documentation says it's wrong. This does not yet address the ReaderWriterMutex issue, which is handled in a different way in a separate CL. Benchmark runs with and without this CL weakly suggest a tiny, not statistically significant, improvement in both time and space with this CL. Bug: 111835365 Test: Build and boot AOSP. TreeHugger. Change-Id: Ie53c65f2ce774a8cb4d224e2c1b3a110eb880f0c Merged-In: Ie53c65f2ce774a8cb4d224e2c1b3a110eb880f0c (cherry picked from commit 81dc7ab1df59021463757e06a95b2abc937a73db)
Loading
Please sign in to comment