--- a/hotspot/src/share/vm/utilities/vmError.hpp Wed Jul 28 17:57:43 2010 -0400
+++ b/hotspot/src/share/vm/utilities/vmError.hpp Tue Aug 03 08:13:38 2010 -0400
@@ -57,6 +57,10 @@
int _current_step;
const char * _current_step_info;
int _verbose;
+ // First error, and its thread id. We must be able to handle native thread,
+ // so use thread id instead of Thread* to identify thread.
+ static VMError* volatile first_error;
+ static volatile jlong first_error_tid;
// used by reporting about OOM
size_t _size;
@@ -108,4 +112,7 @@
// returns original handler for signal, if it was resetted, or NULL if
// signal was not changed by error reporter
static address get_resetted_sighandler(int sig);
+
+ // check to see if fatal error reporting is in progress
+ static bool fatal_error_in_progress() { return first_error != NULL; }
};