Loading services/core/java/com/android/server/wm/ActivityStarter.java +7 −1 Original line number Diff line number Diff line Loading @@ -639,8 +639,14 @@ class ActivityStarter { mRequest.intent, caller); } // Do not lock the resolving to avoid potential deadlock. // If the caller hasn't already resolved the activity, we're willing // to do so here, but because that may require acquiring the AM lock // as part of calculating the NeededUriGrants, we must never hold // the WM lock here to avoid deadlocking. if (mRequest.activityInfo == null) { if (Thread.holdsLock(mService.mGlobalLock)) { Slog.wtf(TAG, new IllegalStateException("Caller must not hold WM lock")); } mRequest.resolveActivity(mSupervisor); } Loading services/core/java/com/android/server/wm/ActivityTaskManagerService.java +9 −13 Original line number Diff line number Diff line Loading @@ -6159,13 +6159,11 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { boolean validateIncomingUser, PendingIntentRecord originatingPendingIntent, boolean allowBackgroundActivityStart) { assertPackageMatchesCallingUid(callingPackage); synchronized (mGlobalLock) { return getActivityStartController().startActivitiesInPackage(uid, realCallingPid, realCallingUid, callingPackage, callingFeatureId, intents, resolvedTypes, resultTo, options, userId, validateIncomingUser, originatingPendingIntent, allowBackgroundActivityStart); } } @Override public int startActivityInPackage(int uid, int realCallingPid, int realCallingUid, Loading @@ -6175,14 +6173,12 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { boolean validateIncomingUser, PendingIntentRecord originatingPendingIntent, boolean allowBackgroundActivityStart) { assertPackageMatchesCallingUid(callingPackage); synchronized (mGlobalLock) { return getActivityStartController().startActivityInPackage(uid, realCallingPid, realCallingUid, callingPackage, callingFeatureId, intent, resolvedType, resultTo, resultWho, requestCode, startFlags, options, userId, inTask, reason, validateIncomingUser, originatingPendingIntent, allowBackgroundActivityStart); } } @Override public int startActivityAsUser(IApplicationThread caller, String callerPackage, Loading Loading
services/core/java/com/android/server/wm/ActivityStarter.java +7 −1 Original line number Diff line number Diff line Loading @@ -639,8 +639,14 @@ class ActivityStarter { mRequest.intent, caller); } // Do not lock the resolving to avoid potential deadlock. // If the caller hasn't already resolved the activity, we're willing // to do so here, but because that may require acquiring the AM lock // as part of calculating the NeededUriGrants, we must never hold // the WM lock here to avoid deadlocking. if (mRequest.activityInfo == null) { if (Thread.holdsLock(mService.mGlobalLock)) { Slog.wtf(TAG, new IllegalStateException("Caller must not hold WM lock")); } mRequest.resolveActivity(mSupervisor); } Loading
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +9 −13 Original line number Diff line number Diff line Loading @@ -6159,13 +6159,11 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { boolean validateIncomingUser, PendingIntentRecord originatingPendingIntent, boolean allowBackgroundActivityStart) { assertPackageMatchesCallingUid(callingPackage); synchronized (mGlobalLock) { return getActivityStartController().startActivitiesInPackage(uid, realCallingPid, realCallingUid, callingPackage, callingFeatureId, intents, resolvedTypes, resultTo, options, userId, validateIncomingUser, originatingPendingIntent, allowBackgroundActivityStart); } } @Override public int startActivityInPackage(int uid, int realCallingPid, int realCallingUid, Loading @@ -6175,14 +6173,12 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { boolean validateIncomingUser, PendingIntentRecord originatingPendingIntent, boolean allowBackgroundActivityStart) { assertPackageMatchesCallingUid(callingPackage); synchronized (mGlobalLock) { return getActivityStartController().startActivityInPackage(uid, realCallingPid, realCallingUid, callingPackage, callingFeatureId, intent, resolvedType, resultTo, resultWho, requestCode, startFlags, options, userId, inTask, reason, validateIncomingUser, originatingPendingIntent, allowBackgroundActivityStart); } } @Override public int startActivityAsUser(IApplicationThread caller, String callerPackage, Loading