hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
changeset 24848 34d57b35331b
parent 24846 269aeb9131ba
child 24941 4ebbe176a7b1
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Thu May 29 14:31:28 2014 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Wed Jun 04 14:16:20 2014 +0200
@@ -2174,14 +2174,20 @@
 }
 
 void G1CollectedHeap::stop() {
-  // Abort any ongoing concurrent mark and stop all concurrent threads.
-  // We do this to make sure these threads do not continue to execute
-  // and access resources (e.g. gclog_or_tty) that are destroyed during
-  // shutdown.
-  _cm->set_has_aborted();
+#if 0
+  // Stopping concurrent worker threads is currently disabled until
+  // some bugs in concurrent mark has been resolve. Without fixing
+  // those bugs first we risk haning during VM exit when trying to
+  // stop these threads.
+
+  // Abort any ongoing concurrent root region scanning and stop all
+  // concurrent threads. We do this to make sure these threads do
+  // not continue to execute and access resources (e.g. gclog_or_tty)
+  // that are destroyed during shutdown.
   _cm->root_regions()->abort();
   _cm->root_regions()->wait_until_scan_finished();
   stop_conc_gc_threads();
+#endif
 }
 
 size_t G1CollectedHeap::conservative_max_heap_alignment() {