aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/memory/collectorPolicy.cpp
diff options
context:
space:
mode:
authorjmasa <none@none>2012-12-03 15:09:39 -0800
committerjmasa <none@none>2012-12-03 15:09:39 -0800
commit6fc6f58ebc56b5c768ea52116b4c5e9fbb28520b (patch)
tree8396512fe797f6772a14946dc286f700a880d8bb /src/share/vm/memory/collectorPolicy.cpp
parent64f38a9e2a5df7aa14866d5c0c6257a79e856d8a (diff)
8005082: NPG: Add specialized Metachunk sizes for reflection and anonymous classloaders
Reviewed-by: johnc, coleenp
Diffstat (limited to 'src/share/vm/memory/collectorPolicy.cpp')
-rw-r--r--src/share/vm/memory/collectorPolicy.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/share/vm/memory/collectorPolicy.cpp b/src/share/vm/memory/collectorPolicy.cpp
index c6eee674d..6857181a5 100644
--- a/src/share/vm/memory/collectorPolicy.cpp
+++ b/src/share/vm/memory/collectorPolicy.cpp
@@ -777,6 +777,15 @@ MetaWord* CollectorPolicy::satisfy_failed_metadata_allocation(
full_gc_count,
GCCause::_metadata_GC_threshold);
VMThread::execute(&op);
+
+ // If GC was locked out, try again. Check
+ // before checking success because the prologue
+ // could have succeeded and the GC still have
+ // been locked out.
+ if (op.gc_locked()) {
+ continue;
+ }
+
if (op.prologue_succeeded()) {
return op.result();
}