8136854: G1 ConcurrentG1RefineThread::stop delays JVM shutdown for >150ms
authortschatzl
Wed, 10 Feb 2016 12:08:37 +0100
changeset 36082 e734f3a55bdf
parent 36081 cac585c76d4c
child 36083 b6d823a25d70
8136854: G1 ConcurrentG1RefineThread::stop delays JVM shutdown for >150ms Summary: Decrease the default wait delay for mark thread initialization to accomodate very short running applications. Reviewed-by: tbenson, mgerdin
hotspot/src/share/vm/gc/shared/concurrentGCThread.cpp
hotspot/src/share/vm/gc/shared/concurrentGCThread.hpp
hotspot/src/share/vm/runtime/init.cpp
--- a/hotspot/src/share/vm/gc/shared/concurrentGCThread.cpp	Wed Feb 10 12:05:40 2016 +0100
+++ b/hotspot/src/share/vm/gc/shared/concurrentGCThread.cpp	Wed Feb 10 12:08:37 2016 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -60,7 +60,7 @@
 void ConcurrentGCThread::wait_for_universe_init() {
   MutexLockerEx x(CGC_lock, Mutex::_no_safepoint_check_flag);
   while (!is_init_completed() && !_should_terminate) {
-    CGC_lock->wait(Mutex::_no_safepoint_check_flag, 200);
+    CGC_lock->wait(Mutex::_no_safepoint_check_flag, 1);
   }
 }
 
--- a/hotspot/src/share/vm/gc/shared/concurrentGCThread.hpp	Wed Feb 10 12:05:40 2016 +0100
+++ b/hotspot/src/share/vm/gc/shared/concurrentGCThread.hpp	Wed Feb 10 12:08:37 2016 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,7 @@
   friend class VMStructs;
 
 protected:
-  bool _should_terminate;
+  bool volatile _should_terminate;
   bool _has_terminated;
 
   // Create and start the thread (setting it's priority high.)
--- a/hotspot/src/share/vm/runtime/init.cpp	Wed Feb 10 12:05:40 2016 +0100
+++ b/hotspot/src/share/vm/runtime/init.cpp	Wed Feb 10 12:08:37 2016 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -181,8 +181,7 @@
   }
 }
 
-
-static bool _init_completed = false;
+static volatile bool _init_completed = false;
 
 bool is_init_completed() {
   return _init_completed;