--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.cpp Fri Feb 27 19:52:48 2015 -0500
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.cpp Tue Mar 03 12:19:35 2015 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2015, 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
@@ -97,9 +97,7 @@
void ConcurrentMarkSweepThread::run() {
assert(this == cmst(), "just checking");
- this->record_stack_base_and_size();
- this->initialize_thread_local_storage();
- this->set_active_handles(JNIHandleBlock::allocate_block());
+ initialize_in_thread();
// From this time Thread::current() should be working.
assert(this == Thread::current(), "just checking");
if (BindCMSThreadToCPU && !os::bind_to_processor(CPUForCMSThread)) {
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp Fri Feb 27 19:52:48 2015 -0500
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp Tue Mar 03 12:19:35 2015 +0100
@@ -1,6 +1,6 @@
/*
- * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2015, 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
@@ -98,6 +98,7 @@
// Set up the thread for stack overflow support
this->record_stack_base_and_size();
this->initialize_thread_local_storage();
+ this->initialize_named_thread();
// Bind yourself to your processor.
if (processor_id() != GCTaskManager::sentinel_worker()) {
if (TraceGCTaskThread) {
--- a/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp Fri Feb 27 19:52:48 2015 -0500
+++ b/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp Tue Mar 03 12:19:35 2015 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2015, 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
@@ -56,6 +56,7 @@
void ConcurrentGCThread::initialize_in_thread() {
this->record_stack_base_and_size();
this->initialize_thread_local_storage();
+ this->initialize_named_thread();
this->set_active_handles(JNIHandleBlock::allocate_block());
// From this time Thread::current() should be working.
assert(this == Thread::current(), "just checking");
--- a/hotspot/src/share/vm/runtime/thread.cpp Fri Feb 27 19:52:48 2015 -0500
+++ b/hotspot/src/share/vm/runtime/thread.cpp Tue Mar 03 12:19:35 2015 +0100
@@ -1161,6 +1161,10 @@
va_end(ap);
}
+void NamedThread::initialize_named_thread() {
+ set_native_thread_name(name());
+}
+
void NamedThread::print_on(outputStream* st) const {
st->print("\"%s\" ", name());
Thread::print_on(st);
--- a/hotspot/src/share/vm/runtime/thread.hpp Fri Feb 27 19:52:48 2015 -0500
+++ b/hotspot/src/share/vm/runtime/thread.hpp Tue Mar 03 12:19:35 2015 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015, 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
@@ -667,6 +667,7 @@
~NamedThread();
// May only be called once per thread.
void set_name(const char* format, ...) ATTRIBUTE_PRINTF(2, 3);
+ void initialize_named_thread();
virtual bool is_Named_thread() const { return true; }
virtual char* name() const { return _name == NULL ? (char*)"Unknown Thread" : _name; }
JavaThread *processed_thread() { return _processed_thread; }
--- a/hotspot/src/share/vm/runtime/vmThread.cpp Fri Feb 27 19:52:48 2015 -0500
+++ b/hotspot/src/share/vm/runtime/vmThread.cpp Tue Mar 03 12:19:35 2015 +0100
@@ -243,7 +243,7 @@
assert(this == vm_thread(), "check");
this->initialize_thread_local_storage();
- this->set_native_thread_name(this->name());
+ this->initialize_named_thread();
this->record_stack_base_and_size();
// Notify_lock wait checks on active_handles() to rewait in
// case of spurious wakeup, it should wait on the last
--- a/hotspot/src/share/vm/utilities/workgroup.cpp Fri Feb 27 19:52:48 2015 -0500
+++ b/hotspot/src/share/vm/utilities/workgroup.cpp Tue Mar 03 12:19:35 2015 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2015, 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
@@ -247,6 +247,7 @@
void GangWorker::initialize() {
this->initialize_thread_local_storage();
this->record_stack_base_and_size();
+ this->initialize_named_thread();
assert(_gang != NULL, "No gang to run in");
os::set_priority(this, NearMaxPriority);
if (TraceWorkGang) {