Mercurial > hg > truffle
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); |