--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp Tue Aug 09 10:16:01 2011 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp Mon Nov 28 09:49:05 2011 -0800
@@ -191,7 +191,11 @@
VM_CGC_Operation op(&cl_cl, verbose_str);
VMThread::execute(&op);
} else {
+ // We don't want to update the marking status if a GC pause
+ // is already underway.
+ _sts.join();
g1h->set_marking_complete();
+ _sts.leave();
}
// Check if cleanup set the free_regions_coming flag. If it