Merge \\"Fix deadlock b/w ActivityManagerService and MediaSessionService\\" am: 4eea3a7f88

am: 42927c4e94

Change-Id: Ieb503007f420f06c599b8fc9f4703954885754b0
This commit is contained in:
Shibin George
2016-06-23 00:24:23 +00:00
committed by android-build-merger

View File

@@ -890,13 +890,24 @@ public class MediaSessionService extends SystemService implements Monitor {
} }
return; return;
} }
try {
String packageName = getContext().getOpPackageName(); // Execute mAudioService.adjustSuggestedStreamVolume() on
mAudioService.adjustSuggestedStreamVolume(direction, suggestedStream, // handler thread of MediaSessionService.
flags, packageName, TAG); // This will release the MediaSessionService.mLock sooner and avoid
} catch (RemoteException e) { // a potential deadlock between MediaSessionService.mLock and
Log.e(TAG, "Error adjusting default volume.", e); // ActivityManagerService lock.
} mHandler.post(new Runnable() {
@Override
public void run() {
try {
String packageName = getContext().getOpPackageName();
mAudioService.adjustSuggestedStreamVolume(direction, suggestedStream,
flags, packageName, TAG);
} catch (RemoteException e) {
Log.e(TAG, "Error adjusting default volume.", e);
}
}
});
} else { } else {
session.adjustVolume(direction, flags, getContext().getPackageName(), session.adjustVolume(direction, flags, getContext().getPackageName(),
UserHandle.myUserId(), true); UserHandle.myUserId(), true);