8138832: CreateCoredumpOnCrash on linux ARM causes assert message to be repeated.
authordavid
Wed, 07 Oct 2015 15:27:02 +0200
changeset 33131 a8ad9de9e5a4
parent 33129 e0bcbb5015b3
child 33132 fc833bb91299
8138832: CreateCoredumpOnCrash on linux ARM causes assert message to be repeated. Reviewed-by: jwilhelm, mgerdin
hotspot/src/share/vm/utilities/vmError.cpp
hotspot/src/share/vm/utilities/vmError.hpp
--- a/hotspot/src/share/vm/utilities/vmError.cpp	Wed Oct 07 01:03:24 2015 +0200
+++ b/hotspot/src/share/vm/utilities/vmError.cpp	Wed Oct 07 15:27:02 2015 +0200
@@ -796,7 +796,7 @@
 # undef END
 }
 
-volatile jlong VMError::first_error_tid = -1;
+volatile intptr_t VMError::first_error_tid = -1;
 
 // An error could happen before tty is initialized or after it has been
 // destroyed. Here we use a very simple unbuffered fdStream for printing.
@@ -925,9 +925,9 @@
   if (SuppressFatalErrorMessage) {
       os::abort(CreateCoredumpOnCrash);
   }
-  jlong mytid = os::current_thread_id();
+  intptr_t mytid = os::current_thread_id();
   if (first_error_tid == -1 &&
-      Atomic::cmpxchg(mytid, &first_error_tid, -1) == -1) {
+      Atomic::cmpxchg_ptr(mytid, &first_error_tid, -1) == -1) {
 
     _id = id;
     _message = message;
@@ -968,7 +968,7 @@
     if (first_error_tid != mytid) {
       char msgbuf[64];
       jio_snprintf(msgbuf, sizeof(msgbuf),
-                   "[thread " INT64_FORMAT " also had an error]",
+                   "[thread " INTX_FORMAT " also had an error]",
                    mytid);
       out.print_raw_cr(msgbuf);
 
--- a/hotspot/src/share/vm/utilities/vmError.hpp	Wed Oct 07 01:03:24 2015 +0200
+++ b/hotspot/src/share/vm/utilities/vmError.hpp	Wed Oct 07 15:27:02 2015 +0200
@@ -63,7 +63,7 @@
 
   // Thread id of the first error. We must be able to handle native thread,
   // so use thread id instead of Thread* to identify thread.
-  static volatile jlong    first_error_tid;
+  static volatile intptr_t first_error_tid;
 
   // Core dump status, false if we have been unable to write a core/minidump for some reason
   static bool coredump_status;
@@ -141,9 +141,7 @@
   // check to see if fatal error reporting is in progress
   static bool fatal_error_in_progress() { return first_error_tid != -1; }
 
-  static jlong get_first_error_tid() {
-    return first_error_tid;
-  }
+  static intptr_t get_first_error_tid() { return first_error_tid; }
 };
 
 #endif // SHARE_VM_UTILITIES_VMERROR_HPP