0.9.0.9:
[sbcl.git] / src / runtime / interrupt.c
index 65f50bf..1578aca 100644 (file)
@@ -124,32 +124,12 @@ struct interrupt_data * global_interrupt_data;
  * mask ought to be clear anyway most of the time, but may be non-zero
  * if we were interrupted e.g. while waiting for a queue.  */
 
-#if 1
 void reset_signal_mask () 
 {
     sigset_t new;
     sigemptyset(&new);
     sigprocmask(SIG_SETMASK,&new,0);
 }
-#else
-void reset_signal_mask () 
-{
-    sigset_t new,old;
-    int i;
-    int wrong=0;
-    sigemptyset(&new);
-    sigprocmask(SIG_SETMASK,&new,&old);
-    for(i=1; i<NSIG; i++) {
-       if(sigismember(&old,i)) {
-           fprintf(stderr,
-                   "Warning: signal %d is masked: this is unexpected\n",i);
-           wrong=1;
-       }
-    }
-    if(wrong) 
-       fprintf(stderr,"If this version of SBCL is less than three months old, please report this.\nOtherwise, please try a newer version first\n.  Reset signal mask.\n");
-}
-#endif
 
 
 
@@ -219,7 +199,7 @@ fake_foreign_function_call(os_context_t *context)
 #ifdef reg_ALLOC
     dynamic_space_free_pointer =
        (lispobj *)(*os_context_register_addr(context, reg_ALLOC));
-#ifdef alpha
+#if defined(LISP_FEATURE_ALPHA)
     if ((long)dynamic_space_free_pointer & 1) {
        lose("dead in fake_foreign_function_call, context = %x", context);
     }
@@ -537,7 +517,7 @@ maybe_now_maybe_later(int signal, siginfo_t *info, void *void_context)
     interrupt_handle_now(signal, info, context);
 #ifdef LISP_FEATURE_DARWIN
     /* Work around G5 bug */
-    sigreturn(void_context);
+    DARWIN_FIX_CONTEXT(context);
 #endif
 }
 
@@ -583,7 +563,7 @@ interrupt_handle_now_handler(int signal, siginfo_t *info, void *void_context)
     os_context_t *context = arch_os_get_context(&void_context);
     interrupt_handle_now(signal, info, context);
 #ifdef LISP_FEATURE_DARWIN
-    sigreturn(void_context);
+    DARWIN_FIX_CONTEXT(context);
 #endif
 }
 
@@ -615,7 +595,7 @@ extern lispobj call_into_lisp(lispobj fun, lispobj *args, int nargs);
 extern void post_signal_tramp(void);
 void arrange_return_to_lisp_function(os_context_t *context, lispobj function)
 {
-#ifndef LISP_FEATURE_X86
+#if !(defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64))
     void * fun=native_pointer(function);
     void *code = &(((struct simple_fun *) fun)->code);
 #endif