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

Commit 18f9ce0d authored by Brett Chabot's avatar Brett Chabot
Browse files

Skip ActivityWaiter synchronization on Instrumentation.callActivityOnDestroy

Temporary workaround for bug 2630683

Change-Id: Ie9ee922dd1f515fc273cb602cb649174e3b8ae6f
parent 810f5ccb
Loading
Loading
Loading
Loading
+15 −13
Original line number Diff line number Diff line
@@ -1058,19 +1058,21 @@ public class Instrumentation {
    }
    
    public void callActivityOnDestroy(Activity activity) {
      if (mWaitingActivities != null) {
          synchronized (mSync) {
              final int N = mWaitingActivities.size();
              for (int i=0; i<N; i++) {
                  final ActivityWaiter aw = mWaitingActivities.get(i);
                  final Intent intent = aw.intent;
                  if (intent.filterEquals(activity.getIntent())) {
                      aw.activity = activity;
                      mMessageQueue.addIdleHandler(new ActivityGoing(aw));
                  }
              }
          }
      }
      // TODO: the following block causes intermittent hangs when using startActivity
      // temporarily comment out until root cause is fixed (bug 2630683)
//      if (mWaitingActivities != null) {
//          synchronized (mSync) {
//              final int N = mWaitingActivities.size();
//              for (int i=0; i<N; i++) {
//                  final ActivityWaiter aw = mWaitingActivities.get(i);
//                  final Intent intent = aw.intent;
//                  if (intent.filterEquals(activity.getIntent())) {
//                      aw.activity = activity;
//                      mMessageQueue.addIdleHandler(new ActivityGoing(aw));
//                  }
//              }
//          }
//      }
      
      activity.performDestroy();