X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-64-darwin-os.c;h=ed8abbbf16b581eb032dc9319032e80822cb7710;hb=f2db6743b1fadeea9e72cb583d857851c87efcd4;hp=35ac2f9045064fd77535cc1f55da9384d5d7297c;hpb=4bf2de6a2adff75459cf218c8bff67f6cdb91211;p=sbcl.git diff --git a/src/runtime/x86-64-darwin-os.c b/src/runtime/x86-64-darwin-os.c index 35ac2f9..ed8abbb 100644 --- a/src/runtime/x86-64-darwin-os.c +++ b/src/runtime/x86-64-darwin-os.c @@ -233,7 +233,7 @@ void signal_emulation_wrapper(x86_thread_state64_t *thread_state, build_fake_signal_context(context, thread_state, float_state); - block_blockable_signals(); + block_blockable_signals(0, 0); handler(signal, siginfo, context); @@ -352,8 +352,7 @@ catch_exception_raise(mach_port_t exception_port, * protection so the error handler has some headroom, protect the * previous page so that we can catch returns from the guard page * and restore it. */ - protect_control_stack_guard_page(0, th); - protect_control_stack_return_guard_page(1, th); + lower_thread_control_stack_guard_page(th); backup_thread_state = thread_state; open_stack_allocation(&thread_state); @@ -394,8 +393,7 @@ catch_exception_raise(mach_port_t exception_port, * unprotect this one. This works even if we somehow missed * the return-guard-page, and hit it on our way to new * exhaustion instead. */ - protect_control_stack_guard_page(1, th); - protect_control_stack_return_guard_page(0, th); + reset_thread_control_stack_guard_page(th); } else if (addr >= undefined_alien_address && addr < undefined_alien_address + os_vm_page_size) { @@ -579,7 +577,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"); } /* Sets up the thread that will listen for mach exceptions. note that