mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-20 07:15:31 +00:00
Merge
This commit is contained in:
commit
7771d30db3
@ -3030,6 +3030,19 @@ void os::Bsd::set_signal_handler(int sig, bool set_installed) {
|
||||
sigAct.sa_sigaction = signalHandler;
|
||||
sigAct.sa_flags = SA_SIGINFO|SA_RESTART;
|
||||
}
|
||||
#if __APPLE__
|
||||
// Needed for main thread as XNU (Mac OS X kernel) will only deliver SIGSEGV
|
||||
// (which starts as SIGBUS) on main thread with faulting address inside "stack+guard pages"
|
||||
// if the signal handler declares it will handle it on alternate stack.
|
||||
// Notice we only declare we will handle it on alt stack, but we are not
|
||||
// actually going to use real alt stack - this is just a workaround.
|
||||
// Please see ux_exception.c, method catch_mach_exception_raise for details
|
||||
// link http://www.opensource.apple.com/source/xnu/xnu-2050.18.24/bsd/uxkern/ux_exception.c
|
||||
if (sig == SIGSEGV) {
|
||||
sigAct.sa_flags |= SA_ONSTACK;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Save flags, which are set by ours
|
||||
assert(sig > 0 && sig < MAXSIGNUM, "vm signal out of expected range");
|
||||
sigflags[sig] = sigAct.sa_flags;
|
||||
|
||||
@ -638,9 +638,6 @@ public:
|
||||
jint _hashStateZ ;
|
||||
void * _schedctl ;
|
||||
|
||||
intptr_t _ScratchA, _ScratchB ; // Scratch locations for fast-path sync code
|
||||
static ByteSize ScratchA_offset() { return byte_offset_of(Thread, _ScratchA ); }
|
||||
static ByteSize ScratchB_offset() { return byte_offset_of(Thread, _ScratchB ); }
|
||||
|
||||
volatile jint rng [4] ; // RNG for spin loop
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user