Merge "Move the mStrictModeCallbacks to be self-locked" into main
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 195e94b..45ab62d 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -730,7 +730,7 @@
/** Whether some specified important processes are allowed to use FIFO priority. */
boolean mAllowSpecifiedFifoScheduling = true;
- @GuardedBy("this")
+ @GuardedBy("mStrictModeCallbacks")
private final SparseArray<IUnsafeIntentStrictModeCallback>
mStrictModeCallbacks = new SparseArray<>();
@@ -9535,18 +9535,20 @@
* @param callback The binder used to communicate the violations.
*/
@Override
- public synchronized void registerStrictModeCallback(IBinder callback) {
- int callingPid = Binder.getCallingPid();
- mStrictModeCallbacks.put(callingPid,
- IUnsafeIntentStrictModeCallback.Stub.asInterface(callback));
- try {
- callback.linkToDeath(() -> {
- synchronized (ActivityManagerService.this) {
- mStrictModeCallbacks.remove(callingPid);
- }
- }, 0);
- } catch (RemoteException e) {
- mStrictModeCallbacks.remove(callingPid);
+ public void registerStrictModeCallback(IBinder callback) {
+ final int callingPid = Binder.getCallingPid();
+ synchronized (mStrictModeCallbacks) {
+ mStrictModeCallbacks.put(callingPid,
+ IUnsafeIntentStrictModeCallback.Stub.asInterface(callback));
+ try {
+ callback.linkToDeath(() -> {
+ synchronized (mStrictModeCallbacks) {
+ mStrictModeCallbacks.remove(callingPid);
+ }
+ }, 0);
+ } catch (RemoteException e) {
+ mStrictModeCallbacks.remove(callingPid);
+ }
}
}
@@ -19907,7 +19909,7 @@
public void triggerUnsafeIntentStrictMode(int callingPid, int type, Intent intent) {
final IUnsafeIntentStrictModeCallback callback;
final Intent i = intent.cloneFilter();
- synchronized (ActivityManagerService.this) {
+ synchronized (mStrictModeCallbacks) {
callback = mStrictModeCallbacks.get(callingPid);
}
if (callback != null) {
@@ -19915,7 +19917,7 @@
try {
callback.onUnsafeIntent(type, i);
} catch (RemoteException e) {
- synchronized (ActivityManagerService.this) {
+ synchronized (mStrictModeCallbacks) {
mStrictModeCallbacks.remove(callingPid);
}
}