1.0.25.50: detect binding and alien stack exhaustion
[sbcl.git] / src / runtime / x86-darwin-os.c
index bb9212e..3c32ec4 100644 (file)
@@ -374,6 +374,7 @@ void
 control_stack_exhausted_handler(int signal, siginfo_t *siginfo, void *void_context) {
     os_context_t *context = arch_os_get_context(&void_context);
 
+    unblock_signals_in_context_and_maybe_warn(context);
     arrange_return_to_lisp_function
         (context, StaticSymbolFunction(CONTROL_STACK_EXHAUSTED_ERROR));
 }
@@ -431,15 +432,15 @@ 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_thread(0, th);
-            protect_control_stack_return_guard_page_thread(1, th);
+            protect_control_stack_guard_page(0, th);
+            protect_control_stack_return_guard_page(1, 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_thread(1, th);
-            protect_control_stack_return_guard_page_thread(0, th);
+            protect_control_stack_guard_page(1, th);
+            protect_control_stack_return_guard_page(0, th);
             break;
         }
         /* Regular memory fault */