--- a/hotspot/src/share/vm/runtime/thread.hpp Wed Oct 16 10:52:41 2013 +0200
+++ b/hotspot/src/share/vm/runtime/thread.hpp Tue Nov 05 17:38:04 2013 -0800
@@ -113,8 +113,9 @@
// Support for forcing alignment of thread objects for biased locking
void* _real_malloc_address;
public:
- void* operator new(size_t size) { return allocate(size, true); }
- void* operator new(size_t size, const std::nothrow_t& nothrow_constant) { return allocate(size, false); }
+ void* operator new(size_t size) throw() { return allocate(size, true); }
+ void* operator new(size_t size, const std::nothrow_t& nothrow_constant) throw() {
+ return allocate(size, false); }
void operator delete(void* p);
protected:
@@ -926,9 +927,6 @@
volatile address _exception_handler_pc; // PC for handler of exception
volatile int _is_method_handle_return; // true (== 1) if the current exception PC is a MethodHandle call site.
- // support for compilation
- bool _is_compiling; // is true if a compilation is active inthis thread (one compilation per thread possible)
-
// support for JNI critical regions
jint _jni_active_critical; // count of entries into JNI critical region
@@ -1008,10 +1006,6 @@
// Testers
virtual bool is_Java_thread() const { return true; }
- // compilation
- void set_is_compiling(bool f) { _is_compiling = f; }
- bool is_compiling() const { return _is_compiling; }
-
// Thread chain operations
JavaThread* next() const { return _next; }
void set_next(JavaThread* p) { _next = p; }
@@ -1281,11 +1275,16 @@
address exception_handler_pc() const { return _exception_handler_pc; }
bool is_method_handle_return() const { return _is_method_handle_return == 1; }
- void set_exception_oop(oop o) { _exception_oop = o; }
+ void set_exception_oop(oop o) { (void)const_cast<oop&>(_exception_oop = o); }
void set_exception_pc(address a) { _exception_pc = a; }
void set_exception_handler_pc(address a) { _exception_handler_pc = a; }
void set_is_method_handle_return(bool value) { _is_method_handle_return = value ? 1 : 0; }
+ void clear_exception_oop_and_pc() {
+ set_exception_oop(NULL);
+ set_exception_pc(NULL);
+ }
+
// Stack overflow support
inline size_t stack_available(address cur_sp);
address stack_yellow_zone_base()
@@ -1826,13 +1825,14 @@
private:
CompilerCounters* _counters;
- ciEnv* _env;
- CompileLog* _log;
- CompileTask* _task;
- CompileQueue* _queue;
- BufferBlob* _buffer_blob;
+ ciEnv* _env;
+ CompileLog* _log;
+ CompileTask* _task;
+ CompileQueue* _queue;
+ BufferBlob* _buffer_blob;
- nmethod* _scanned_nmethod; // nmethod being scanned by the sweeper
+ nmethod* _scanned_nmethod; // nmethod being scanned by the sweeper
+ AbstractCompiler* _compiler;
public:
@@ -1844,14 +1844,17 @@
// Hide this compiler thread from external view.
bool is_hidden_from_external_view() const { return true; }
- CompileQueue* queue() { return _queue; }
- CompilerCounters* counters() { return _counters; }
+ void set_compiler(AbstractCompiler* c) { _compiler = c; }
+ AbstractCompiler* compiler() const { return _compiler; }
+
+ CompileQueue* queue() const { return _queue; }
+ CompilerCounters* counters() const { return _counters; }
// Get/set the thread's compilation environment.
ciEnv* env() { return _env; }
void set_env(ciEnv* env) { _env = env; }
- BufferBlob* get_buffer_blob() { return _buffer_blob; }
+ BufferBlob* get_buffer_blob() const { return _buffer_blob; }
void set_buffer_blob(BufferBlob* b) { _buffer_blob = b; };
// Get/set the thread's logging information