Fix AudioService rotation helper thread
Fix a race condition where the wait index can be incremented inbetween the while() loop and the lock Fix when updateOrientation() is called: after the sleep, otherwise the last sleep is useless. Bug 24677424 Change-Id: I03770a0fc8af57f4696ebee7e9c9110e17c55a24
This commit is contained in:
@@ -192,16 +192,18 @@ class RotationHelper {
|
||||
}
|
||||
|
||||
public void run() {
|
||||
int newRotation;
|
||||
while (mWaitCounter < WAIT_TIMES_MS.length) {
|
||||
updateOrientation();
|
||||
int waitTimeMs;
|
||||
synchronized(mCounterLock) {
|
||||
waitTimeMs = WAIT_TIMES_MS[mWaitCounter];
|
||||
waitTimeMs = mWaitCounter < WAIT_TIMES_MS.length ?
|
||||
WAIT_TIMES_MS[mWaitCounter] : 0;
|
||||
mWaitCounter++;
|
||||
}
|
||||
try {
|
||||
sleep(waitTimeMs);
|
||||
if (waitTimeMs > 0) {
|
||||
sleep(waitTimeMs);
|
||||
updateOrientation();
|
||||
}
|
||||
} catch (InterruptedException e) { }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user