Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 11d7502b authored by Dianne Hackborn's avatar Dianne Hackborn Committed by Android Git Automerger
Browse files

am 8656145e: Merge "Fix issue #593153: Broadcast time out when sending..." into froyo

Merge commit '8656145e' into froyo-plus-aosp

* commit '8656145e':
  Fix issue #593153: Broadcast time out when sending...
parents 6852b198 8656145e
Loading
Loading
Loading
Loading
+113 −87

File changed.

Preview size limit exceeded, changes collapsed.

+1 −1
Original line number Diff line number Diff line
@@ -796,7 +796,7 @@ class ContextImpl extends Context {
                    scheduler = mMainThread.getHandler();
                }
                rd = new ActivityThread.PackageInfo.ReceiverDispatcher(
                        receiver, context, scheduler, null, false).getIIntentReceiver();
                        receiver, context, scheduler, null, true).getIIntentReceiver();
            }
        }
        try {
+6 −4
Original line number Diff line number Diff line
@@ -179,6 +179,8 @@ class PackageManagerService extends IPackageManager.Stub {
    static final int SCAN_NEW_INSTALL = 1<<4;
    static final int SCAN_NO_PATHS = 1<<5;

    static final int REMOVE_CHATTY = 1<<16;
    
    static final ComponentName DEFAULT_CONTAINER_COMPONENT = new ComponentName(
            "com.android.defcontainer",
            "com.android.defcontainer.DefaultContainerService");
@@ -6068,7 +6070,8 @@ class PackageManagerService extends IPackageManager.Stub {
        }
        
        synchronized (mInstallLock) {
            res = deletePackageLI(packageName, deleteCodeAndResources, flags, info);
            res = deletePackageLI(packageName, deleteCodeAndResources,
                    flags | REMOVE_CHATTY, info);
        }

        if(res && sendBroadCast) {
@@ -6134,7 +6137,7 @@ class PackageManagerService extends IPackageManager.Stub {
        if (outInfo != null) {
            outInfo.removedPackage = packageName;
        }
        removePackageLI(p, true);
        removePackageLI(p, (flags&REMOVE_CHATTY) != 0);
        // Retrieve object to delete permissions for shared user later on
        PackageSetting deletedPs;
        synchronized (mPackages) {
@@ -9589,8 +9592,7 @@ class PackageManagerService extends IPackageManager.Stub {
                   continue;
               }
               // Parse package
               int parseFlags = PackageParser.PARSE_CHATTY |
                       PackageParser.PARSE_ON_SDCARD | mDefParseFlags;
               int parseFlags = PackageParser.PARSE_ON_SDCARD | mDefParseFlags;
               doGc = true;
               synchronized (mInstallLock) {
                   final PackageParser.Package pkg =  scanPackageLI(new File(codePath),
+7 −5
Original line number Diff line number Diff line
@@ -9905,7 +9905,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
            }
            if (mOrderedBroadcasts.size() > 0) {
                pw.println(" ");
                pw.println("  Active serialized broadcasts:");
                pw.println("  Active ordered broadcasts:");
            }
            for (int i=mOrderedBroadcasts.size()-1; i>=0; i--) {
                pw.println("  Serialized Broadcast #" + i + ":");
@@ -12919,7 +12919,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
            try {
                if (DEBUG_BROADCAST_LIGHT) {
                    int seq = r.intent.getIntExtra("seq", -1);
                    Slog.i(TAG, "Delivering to " + filter.receiverList.app
                    Slog.i(TAG, "Delivering to " + filter
                            + " (seq=" + seq + "): " + r);
                }
                performReceive(filter.receiverList.app, filter.receiverList.receiver,
@@ -12959,7 +12959,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
            if (DEBUG_BROADCAST) Slog.v(TAG, "processNextBroadcast: "
                    + mParallelBroadcasts.size() + " broadcasts, "
                    + mOrderedBroadcasts.size() + " serialized broadcasts");
                    + mOrderedBroadcasts.size() + " ordered broadcasts");
            updateCpuStats();
            
@@ -12977,7 +12977,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
                for (int i=0; i<N; i++) {
                    Object target = r.receivers.get(i);
                    if (DEBUG_BROADCAST)  Slog.v(TAG,
                            "Delivering non-serialized to registered "
                            "Delivering non-ordered to registered "
                            + target + ": " + r);
                    deliverToRegisteredReceiver(r, (BroadcastFilter)target, false);
                }
@@ -13115,12 +13115,14 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
                // a direct call.
                BroadcastFilter filter = (BroadcastFilter)nextReceiver;
                if (DEBUG_BROADCAST)  Slog.v(TAG,
                        "Delivering serialized to registered "
                        "Delivering ordered to registered "
                        + filter + ": " + r);
                deliverToRegisteredReceiver(r, filter, r.ordered);
                if (r.receiver == null || !r.ordered) {
                    // The receiver has already finished, so schedule to
                    // process the next one.
                    if (DEBUG_BROADCAST) Slog.v(TAG, "Quick finishing: ordered="
                            + r.ordered + " receiver=" + r.receiver);
                    r.state = BroadcastRecord.IDLE;
                    scheduleBroadcastsLocked();
                }
+3 −1
Original line number Diff line number Diff line
@@ -126,8 +126,10 @@ class BroadcastRecord extends Binder {
            pw.println(prefix + "curApp=" + curApp);
            pw.println(prefix + "curComponent="
                    + (curComponent != null ? curComponent.toShortString() : "--"));
            if (curReceiver != null && curReceiver.applicationInfo != null) {
                pw.println(prefix + "curSourceDir=" + curReceiver.applicationInfo.sourceDir);
            }
        }
        String stateStr = " (?)";
        switch (state) {
            case IDLE:              stateStr=" (IDLE)"; break;