comparison src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp @ 6184:40782a131183

7129715: MAC: SIGBUS in nsk stress test Summary: StackOverflowError may get lost on OSX. Reviewed-by: kvn, dcubed
author roland
date Thu, 21 Jun 2012 09:52:38 +0200
parents 4073d9478a90
children 716e6ef4482a
comparison
equal deleted inserted replaced
6183:6f8f439e247d 6184:40782a131183
514 #endif 514 #endif
515 } 515 }
516 } 516 }
517 } 517 }
518 518
519 if (thread->thread_state() == _thread_in_Java) { 519 // We test if stub is already set (by the stack overflow code
520 // above) so it is not overwritten by the code that follows. This
521 // check is not required on other platforms, because on other
522 // platforms we check for SIGSEGV only or SIGBUS only, where here
523 // we have to check for both SIGSEGV and SIGBUS.
524 if (thread->thread_state() == _thread_in_Java && stub == NULL) {
520 // Java thread running in Java code => find exception handler if any 525 // Java thread running in Java code => find exception handler if any
521 // a fault inside compiled code, the interpreter, or a stub 526 // a fault inside compiled code, the interpreter, or a stub
522 527
523 if ((sig == SIGSEGV || sig == SIGBUS) && os::is_poll_address((address)info->si_addr)) { 528 if ((sig == SIGSEGV || sig == SIGBUS) && os::is_poll_address((address)info->si_addr)) {
524 stub = SharedRuntime::get_poll_stub(pc); 529 stub = SharedRuntime::get_poll_stub(pc);