From 81c4aa5c13e38b701a0ace0765ab153b750a1e7e Mon Sep 17 00:00:00 2001
Date: Tue, 25 Jun 2019 10:06:19 +0000
Subject: [PATCH] backport of JDK-8141356

Summary: Explicitly stop CMS threads during VM termination
LLT:
Bug url: https://bugs.openjdk.java.net/browse/JDK-8141356
---
 hotspot/src/share/vm/memory/genCollectedHeap.cpp | 8 ++++++++
 hotspot/src/share/vm/memory/genCollectedHeap.hpp | 3 +++
 2 files changed, 11 insertions(+)

diff --git a/hotspot/src/share/vm/memory/genCollectedHeap.cpp b/hotspot/src/share/vm/memory/genCollectedHeap.cpp
index f7c9591d90..eeb56f02a1 100644
--- a/hotspot/src/share/vm/memory/genCollectedHeap.cpp
+++ b/hotspot/src/share/vm/memory/genCollectedHeap.cpp
@@ -1408,3 +1408,11 @@ jlong GenCollectedHeap::millis_since_last_gc() {
   }
   return retVal;
 }
+
+void GenCollectedHeap::stop() {
+#if INCLUDE_ALL_GCS
+  if (UseConcMarkSweepGC) {
+    ConcurrentMarkSweepThread::stop();
+  }
+#endif
+}
diff --git a/hotspot/src/share/vm/memory/genCollectedHeap.hpp b/hotspot/src/share/vm/memory/genCollectedHeap.hpp
index 58786eded2..c3eb0db064 100644
--- a/hotspot/src/share/vm/memory/genCollectedHeap.hpp
+++ b/hotspot/src/share/vm/memory/genCollectedHeap.hpp
@@ -538,6 +538,9 @@ private:
 protected:
   virtual void gc_prologue(bool full);
   virtual void gc_epilogue(bool full);
+
+public:
+  void stop();
 };
 
 #endif // SHARE_VM_MEMORY_GENCOLLECTEDHEAP_HPP
-- 
2.19.0-rc1

