Loading core/java/android/app/ActivityThread.java +7 −0 Original line number Diff line number Diff line Loading @@ -4492,6 +4492,8 @@ public final class ActivityThread { + "snatched provider from the jaws of death"); } prc.removePending = false; // There is a race! It fails to remove the message, which // will be handled in completeRemoveProvider(). mH.removeMessages(H.REMOVE_PROVIDER, prc); } else { unstableDelta = 0; Loading Loading @@ -4671,6 +4673,11 @@ public final class ActivityThread { return; } // More complicated race!! Some client managed to acquire the // provider and release it before the removal was completed. // Continue the removal, and abort the next remove message. prc.removePending = false; final IBinder jBinder = prc.holder.provider.asBinder(); ProviderRefCount existingPrc = mProviderRefCountMap.get(jBinder); if (existingPrc == prc) { Loading Loading
core/java/android/app/ActivityThread.java +7 −0 Original line number Diff line number Diff line Loading @@ -4492,6 +4492,8 @@ public final class ActivityThread { + "snatched provider from the jaws of death"); } prc.removePending = false; // There is a race! It fails to remove the message, which // will be handled in completeRemoveProvider(). mH.removeMessages(H.REMOVE_PROVIDER, prc); } else { unstableDelta = 0; Loading Loading @@ -4671,6 +4673,11 @@ public final class ActivityThread { return; } // More complicated race!! Some client managed to acquire the // provider and release it before the removal was completed. // Continue the removal, and abort the next remove message. prc.removePending = false; final IBinder jBinder = prc.holder.provider.asBinder(); ProviderRefCount existingPrc = mProviderRefCountMap.get(jBinder); if (existingPrc == prc) { Loading