am 825e0da2: Merge "Fix race when cleaning up receivers/services in Context" into lmp-mr1-dev
* commit '825e0da22a672ada95da2175bb2d48579bf88a0d': Fix race when cleaning up receivers/services in Context
This commit is contained in:
@@ -632,6 +632,7 @@ public final class LoadedApk {
|
|||||||
public void removeContextRegistrations(Context context,
|
public void removeContextRegistrations(Context context,
|
||||||
String who, String what) {
|
String who, String what) {
|
||||||
final boolean reportRegistrationLeaks = StrictMode.vmRegistrationLeaksEnabled();
|
final boolean reportRegistrationLeaks = StrictMode.vmRegistrationLeaksEnabled();
|
||||||
|
synchronized (mReceivers) {
|
||||||
ArrayMap<BroadcastReceiver, LoadedApk.ReceiverDispatcher> rmap =
|
ArrayMap<BroadcastReceiver, LoadedApk.ReceiverDispatcher> rmap =
|
||||||
mReceivers.remove(context);
|
mReceivers.remove(context);
|
||||||
if (rmap != null) {
|
if (rmap != null) {
|
||||||
@@ -656,6 +657,9 @@ public final class LoadedApk {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
mUnregisteredReceivers.remove(context);
|
mUnregisteredReceivers.remove(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
synchronized (mServices) {
|
||||||
//Slog.i(TAG, "Receiver registrations: " + mReceivers);
|
//Slog.i(TAG, "Receiver registrations: " + mReceivers);
|
||||||
ArrayMap<ServiceConnection, LoadedApk.ServiceDispatcher> smap =
|
ArrayMap<ServiceConnection, LoadedApk.ServiceDispatcher> smap =
|
||||||
mServices.remove(context);
|
mServices.remove(context);
|
||||||
@@ -682,6 +686,7 @@ public final class LoadedApk {
|
|||||||
mUnboundServices.remove(context);
|
mUnboundServices.remove(context);
|
||||||
//Slog.i(TAG, "Service registrations: " + mServices);
|
//Slog.i(TAG, "Service registrations: " + mServices);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public IIntentReceiver getReceiverDispatcher(BroadcastReceiver r,
|
public IIntentReceiver getReceiverDispatcher(BroadcastReceiver r,
|
||||||
Context context, Handler handler,
|
Context context, Handler handler,
|
||||||
|
|||||||
Reference in New Issue
Block a user