Mercurial > hg > truffle
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 |