diff -r 40fc0ab5cd15 -r bdb7375a1fee hotspot/src/share/vm/runtime/thread.hpp --- a/hotspot/src/share/vm/runtime/thread.hpp Wed Jan 27 22:38:37 2010 -0800 +++ b/hotspot/src/share/vm/runtime/thread.hpp Mon Feb 01 17:35:05 2010 -0700 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2010 Sun Microsystems, Inc. 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 @@ -1193,6 +1193,9 @@ static ByteSize suspend_flags_offset() { return byte_offset_of(JavaThread, _suspend_flags ); } static ByteSize do_not_unlock_if_synchronized_offset() { return byte_offset_of(JavaThread, _do_not_unlock_if_synchronized); } + static ByteSize should_post_on_exceptions_flag_offset() { + return byte_offset_of(JavaThread, _should_post_on_exceptions_flag); + } #ifndef SERIALGC static ByteSize satb_mark_queue_offset() { return byte_offset_of(JavaThread, _satb_mark_queue); } @@ -1432,6 +1435,16 @@ void increment_interp_only_mode() { ++_interp_only_mode; } void decrement_interp_only_mode() { --_interp_only_mode; } + // support for cached flag that indicates whether exceptions need to be posted for this thread + // if this is false, we can avoid deoptimizing when events are thrown + // this gets set to reflect whether jvmtiExport::post_exception_throw would actually do anything + private: + int _should_post_on_exceptions_flag; + + public: + int should_post_on_exceptions_flag() { return _should_post_on_exceptions_flag; } + void set_should_post_on_exceptions_flag(int val) { _should_post_on_exceptions_flag = val; } + private: ThreadStatistics *_thread_stat;