We need to conditionally set the prevPriority only if we enter
the first locked section. Otherwise we'll never reset back to the
lower priorities.
Test: Make sure no binder threads are stuck at 110.
Test: go/wm-smoke
Bug:
36631902
Change-Id: I8a9c329bc3084371022da91eabee45943c1b8c9f
final int tid = myTid();
final int prevPriority = getThreadPriority(tid);
final PriorityState state = mThreadState.get();
- state.prevPriority = prevPriority;
- if (state.regionCounter == 0 && prevPriority > mBoostToPriority) {
- setThreadPriority(tid, mBoostToPriority);
+ if (state.regionCounter == 0) {
+ state.prevPriority = prevPriority;
+ if (prevPriority > mBoostToPriority) {
+ setThreadPriority(tid, mBoostToPriority);
+ }
}
state.regionCounter++;
if (LockGuard.ENABLED) {