Merge "Prevent modifying mAudioPolicies during iteration" am: aded52644c am: 439bed3619
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2214962 Change-Id: I62c678c609889f2622b9fd0b7bf726252fca4b60 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -1517,6 +1517,7 @@ public class AudioService extends IAudioService.Stub
|
||||
}
|
||||
|
||||
synchronized (mAudioPolicies) {
|
||||
ArrayList<AudioPolicyProxy> invalidProxies = new ArrayList<>();
|
||||
for (AudioPolicyProxy policy : mAudioPolicies.values()) {
|
||||
final int status = policy.connectMixes();
|
||||
if (status != AudioSystem.SUCCESS) {
|
||||
@@ -1524,7 +1525,7 @@ public class AudioService extends IAudioService.Stub
|
||||
Log.e(TAG, "onAudioServerDied: error "
|
||||
+ AudioSystem.audioSystemErrorToString(status)
|
||||
+ " when connecting mixes for policy " + policy.toLogFriendlyString());
|
||||
policy.release();
|
||||
invalidProxies.add(policy);
|
||||
} else {
|
||||
final int deviceAffinitiesStatus = policy.setupDeviceAffinities();
|
||||
if (deviceAffinitiesStatus != AudioSystem.SUCCESS) {
|
||||
@@ -1532,10 +1533,12 @@ public class AudioService extends IAudioService.Stub
|
||||
+ AudioSystem.audioSystemErrorToString(deviceAffinitiesStatus)
|
||||
+ " when connecting device affinities for policy "
|
||||
+ policy.toLogFriendlyString());
|
||||
policy.release();
|
||||
invalidProxies.add(policy);
|
||||
}
|
||||
}
|
||||
}
|
||||
invalidProxies.forEach((policy) -> policy.release());
|
||||
|
||||
}
|
||||
|
||||
// Restore capture policies
|
||||
|
||||
Reference in New Issue
Block a user