src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
changeset 58268 bc696d87d032
parent 58232 de9d23469c68
child 58283 cdce40c3286f
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp	Mon Sep 23 14:30:31 2019 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp	Mon Sep 23 16:24:32 2019 +0200
@@ -809,22 +809,12 @@
     // way later after GC happened, only to fail the second allocation, because
     // other threads have already depleted the free storage. In this case, a better
     // strategy is to try again, as long as GC makes progress.
-    //
-    // Then, we need to make sure the allocation was retried after at least one
-    // Full GC, which means we want to try more than ShenandoahFullGCThreshold times.
-
-    size_t tries = 0;
-
-    while (result == NULL && _progress_last_gc.is_set()) {
-      tries++;
-      control_thread()->handle_alloc_failure(req.size());
-      result = allocate_memory_under_lock(req, in_new_region);
-    }
-
-    while (result == NULL && tries <= ShenandoahFullGCThreshold) {
-      tries++;
-      control_thread()->handle_alloc_failure(req.size());
-      result = allocate_memory_under_lock(req, in_new_region);
+
+    if (result == NULL) {
+      do {
+        control_thread()->handle_alloc_failure(req.size());
+        result = allocate_memory_under_lock(req, in_new_region);
+      } while (result == NULL && _progress_last_gc.is_set());
     }
 
   } else {