Do not sleep while waiting for GC

This is a partial revert of aosp/1690649. It backs out the
addition of the wait loop in CheckGCForNative().

We can apparently still encounter cases in which we sleep for a
nonexistent GC.

Test: Build and boot AOSP
Bug: 187531176
Bug: 186592536
Change-Id: Icaf75ae3582ea51eecf9fe4b81e629bc1d862788
diff --git a/runtime/gc/heap.cc b/runtime/gc/heap.cc
index 208ce13..93b1bcf 100644
--- a/runtime/gc/heap.cc
+++ b/runtime/gc/heap.cc
@@ -3965,20 +3965,7 @@
         if (VLOG_IS_ON(heap) || VLOG_IS_ON(startup)) {
           LOG(INFO) << "Stopping for native allocation, urgency: " << gc_urgency;
         }
-        // Count how many times we do this, so we can warn if this becomes excessive.
-        // Stop after a while out of excessive caution.
-        static constexpr int kGcWaitIters = 20;
-        for (int i = 1; i <= kGcWaitIters; ++i) {
-          if (!GCNumberLt(GetCurrentGcNum(), gcs_requested_.load(std::memory_order_relaxed))
-              || WaitForGcToComplete(kGcCauseForNativeAlloc, self) != collector::kGcTypeNone) {
-            break;
-          }
-          if (i % 10 == 0) {
-            LOG(WARNING) << "Slept " << i << " times in native allocation, waiting for GC";
-          }
-          static constexpr int kGcWaitSleepMicros = 2000;
-          usleep(kGcWaitSleepMicros);  // Encourage our requested GC to start.
-        }
+        WaitForGcToComplete(kGcCauseForNativeAlloc, self);
       }
     } else {
       CollectGarbageInternal(NonStickyGcType(), kGcCauseForNativeAlloc, false, starting_gc_num + 1);