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

Commit b7ce6d6d authored by Adam Lesinski's avatar Adam Lesinski Committed by Android Git Automerger
Browse files

am 825e0da2: Merge "Fix race when cleaning up receivers/services in Context" into lmp-mr1-dev

* commit '825e0da2':
  Fix race when cleaning up receivers/services in Context
parents d2fd1bd9 825e0da2
Loading
Loading
Loading
Loading
+48 −43
Original line number Diff line number Diff line
@@ -632,6 +632,7 @@ public final class LoadedApk {
    public void removeContextRegistrations(Context context,
            String who, String what) {
        final boolean reportRegistrationLeaks = StrictMode.vmRegistrationLeaksEnabled();
        synchronized (mReceivers) {
            ArrayMap<BroadcastReceiver, LoadedApk.ReceiverDispatcher> rmap =
                    mReceivers.remove(context);
            if (rmap != null) {
@@ -656,6 +657,9 @@ public final class LoadedApk {
                }
            }
            mUnregisteredReceivers.remove(context);
        }

        synchronized (mServices) {
            //Slog.i(TAG, "Receiver registrations: " + mReceivers);
            ArrayMap<ServiceConnection, LoadedApk.ServiceDispatcher> smap =
                    mServices.remove(context);
@@ -682,6 +686,7 @@ public final class LoadedApk {
            mUnboundServices.remove(context);
            //Slog.i(TAG, "Service registrations: " + mServices);
        }
    }

    public IIntentReceiver getReceiverDispatcher(BroadcastReceiver r,
            Context context, Handler handler,