OSDN Git Service

frameworks/base: Implement Mutual exclusion in BroadcastReceiver
authorVairavan Srinivasan <vairav@codeaurora.org>
Thu, 22 Jul 2010 20:36:40 +0000 (13:36 -0700)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Fri, 5 Aug 2011 08:05:42 +0000 (16:05 +0800)
Invoke forceStopPackageLocked after acquiring a lock on
ActivityManagerService.this.

Change-Id: I75a85da03418a87c26b89360cebd3bccc6a25e46

services/java/com/android/server/am/ActivityManagerService.java

index db1aa4f..517f1e7 100755 (executable)
@@ -3679,10 +3679,12 @@ public final class ActivityManagerService extends ActivityManagerNative
                 String[] pkgs = intent.getStringArrayExtra(Intent.EXTRA_PACKAGES);
                 if (pkgs != null) {
                     for (String pkg : pkgs) {
-                        if (forceStopPackageLocked(pkg, -1, false, false, false)) {
-                            setResultCode(Activity.RESULT_OK);
-                            return;
-                        }
+                        synchronized (ActivityManagerService.this) {
+                          if (forceStopPackageLocked(pkg, -1, false, false, false)) {
+                              setResultCode(Activity.RESULT_OK);
+                              return;
+                          }
+                       }
                     }
                 }
             }