comparison src/share/vm/runtime/thread.cpp @ 2126:db2b0f8c1cef

6814943: getcpool001 catches more than one JvmtiThreadState problem Summary: Mark field volatile, use membars, and change access order to close race Reviewed-by: dcubed, dholmes
author kamg
date Tue, 11 Jan 2011 10:06:00 -0500
parents b1a2afa37ec4
children 8f8dfba37802
comparison
equal deleted inserted replaced
2125:7246a374a9f2 2126:db2b0f8c1cef
29 #include "classfile/vmSymbols.hpp" 29 #include "classfile/vmSymbols.hpp"
30 #include "code/scopeDesc.hpp" 30 #include "code/scopeDesc.hpp"
31 #include "compiler/compileBroker.hpp" 31 #include "compiler/compileBroker.hpp"
32 #include "interpreter/interpreter.hpp" 32 #include "interpreter/interpreter.hpp"
33 #include "interpreter/linkResolver.hpp" 33 #include "interpreter/linkResolver.hpp"
34 #include "jvmtifiles/jvmtiEnv.hpp"
34 #include "memory/oopFactory.hpp" 35 #include "memory/oopFactory.hpp"
35 #include "memory/universe.inline.hpp" 36 #include "memory/universe.inline.hpp"
36 #include "oops/instanceKlass.hpp" 37 #include "oops/instanceKlass.hpp"
37 #include "oops/objArrayOop.hpp" 38 #include "oops/objArrayOop.hpp"
38 #include "oops/oop.inline.hpp" 39 #include "oops/oop.inline.hpp"
1697 1698
1698 if (UseTLAB) { 1699 if (UseTLAB) {
1699 tlab().make_parsable(true); // retire TLAB 1700 tlab().make_parsable(true); // retire TLAB
1700 } 1701 }
1701 1702
1702 if (jvmti_thread_state() != NULL) { 1703 if (JvmtiEnv::environments_might_exist()) {
1703 JvmtiExport::cleanup_thread(this); 1704 JvmtiExport::cleanup_thread(this);
1704 } 1705 }
1705 1706
1706 #ifndef SERIALGC 1707 #ifndef SERIALGC
1707 // We must flush G1-related buffers before removing a thread from 1708 // We must flush G1-related buffers before removing a thread from