Add synchronization to call site optimization assert

Bug: 157546167
Change-Id: I41e1327b5363d4c276bb5ef35e9b053c1b6c211f
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/CallSiteOptimizationInfoPropagator.java b/src/main/java/com/android/tools/r8/ir/optimize/CallSiteOptimizationInfoPropagator.java
index 7ee8700..5eb23bb 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/CallSiteOptimizationInfoPropagator.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/CallSiteOptimizationInfoPropagator.java
@@ -35,6 +35,7 @@
 import com.android.tools.r8.shaking.AppInfoWithLiveness;
 import com.android.tools.r8.utils.BooleanUtils;
 import com.android.tools.r8.utils.ForEachable;
+import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.InternalOptions.CallSiteOptimizationOptions;
 import com.android.tools.r8.utils.LazyBox;
 import com.android.tools.r8.utils.Timing;
@@ -276,7 +277,13 @@
   }
 
   private void abandonCallSitePropagation(ForEachable<ProgramMethod> methods) {
-    methods.forEach(method -> method.getDefinition().abandonCallSiteOptimizationInfo());
+    if (InternalOptions.assertionsEnabled()) {
+      synchronized (this) {
+        methods.forEach(method -> method.getDefinition().abandonCallSiteOptimizationInfo());
+      }
+    } else {
+      methods.forEach(method -> method.getDefinition().abandonCallSiteOptimizationInfo());
+    }
   }
 
   private CallSiteOptimizationInfo computeCallSiteOptimizationInfoFromArguments(
@@ -435,7 +442,7 @@
     return null;
   }
 
-  private boolean verifyAllProgramDispatchTargetsHaveBeenAbandoned(
+  private synchronized boolean verifyAllProgramDispatchTargetsHaveBeenAbandoned(
       InvokeMethod invoke, ProgramMethod context) {
     ProgramMethodSet targets = invoke.lookupProgramDispatchTargets(appView, context);
     if (targets != null) {