Merge "Prevent modifying mAudioPolicies during iteration" into tm-qpr-dev

This commit is contained in:
Atneya Nair
2022-08-20 00:48:57 +00:00
committed by Android (Google) Code Review

View File

@@ -1614,6 +1614,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) {
@@ -1621,7 +1622,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) {
@@ -1629,10 +1630,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