comparison src/share/vm/graal/graalRuntime.cpp @ 16679:58622d6b1097

give all aborting threads a chance to print Graal related stack traces
author Doug Simon <doug.simon@oracle.com>
date Mon, 04 Aug 2014 14:26:29 +0200
parents d3fec84757ed
children 4d0d1dc5db00
comparison
equal deleted inserted replaced
16678:ffb014884c12 16679:58622d6b1097
988 void GraalRuntime::abort_on_pending_exception(Handle exception, const char* message, bool dump_core) { 988 void GraalRuntime::abort_on_pending_exception(Handle exception, const char* message, bool dump_core) {
989 Thread* THREAD = Thread::current(); 989 Thread* THREAD = Thread::current();
990 CLEAR_PENDING_EXCEPTION; 990 CLEAR_PENDING_EXCEPTION;
991 tty->print_cr(message); 991 tty->print_cr(message);
992 call_printStackTrace(exception, THREAD); 992 call_printStackTrace(exception, THREAD);
993
994 // Give other aborting threads to also print their stack traces.
995 // This can be very useful when debugging class initialization
996 // failures.
997 os::sleep(THREAD, 200, false);
998
993 vm_abort(dump_core); 999 vm_abort(dump_core);
994 } 1000 }
995 1001
996 Klass* GraalRuntime::resolve_or_null(Symbol* name, TRAPS) { 1002 Klass* GraalRuntime::resolve_or_null(Symbol* name, TRAPS) {
997 return SystemDictionary::resolve_or_null(name, SystemDictionary::graal_loader(), Handle(), CHECK_NULL); 1003 return SystemDictionary::resolve_or_null(name, SystemDictionary::graal_loader(), Handle(), CHECK_NULL);