X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-darwin-os.c;h=ad41b0fe4ff102fafdb76af320f2947743d27034;hb=922fe0d6da0e4bdcd366f5101395670aabd14e62;hp=2c2b9785c70770d8dcfaed3b7a69220dda0e520e;hpb=012b1558b80a988901569412ca79d544ed30ff6a;p=sbcl.git diff --git a/src/runtime/x86-darwin-os.c b/src/runtime/x86-darwin-os.c index 2c2b978..ad41b0f 100644 --- a/src/runtime/x86-darwin-os.c +++ b/src/runtime/x86-darwin-os.c @@ -1,5 +1,3 @@ - - #ifdef LISP_FEATURE_SB_THREAD #include #include @@ -25,6 +23,7 @@ #include #include #include +#include #ifdef LISP_FEATURE_SB_THREAD @@ -271,7 +270,7 @@ void signal_emulation_wrapper(x86_thread_state32_t *thread_state, build_fake_signal_context(context, thread_state, float_state); - block_blockable_signals(); + block_blockable_signals(0, 0); handler(signal, siginfo, context); @@ -431,15 +430,13 @@ catch_exception_raise(mach_port_t exception_port, } /* At stack guard */ if (os_trunc_to_page(addr) == CONTROL_STACK_GUARD_PAGE(th)) { - protect_control_stack_guard_page(0, th); - protect_control_stack_return_guard_page(1, th); + lower_thread_control_stack_guard_page(th); handler = control_stack_exhausted_handler; break; } /* Return from stack guard */ if (os_trunc_to_page(addr) == CONTROL_STACK_RETURN_GUARD_PAGE(th)) { - protect_control_stack_guard_page(1, th); - protect_control_stack_return_guard_page(0, th); + reset_thread_control_stack_guard_page(th); break; } /* Regular memory fault */ @@ -515,7 +512,7 @@ mach_exception_handler(void *port) /* mach_msg_server should never return, but it should dispatch mach * exceptions to our catch_exception_raise function */ - abort(); + lose("mach_msg_server returned"); } #endif