Use safepoints for INTERRUPT-THREAD
[sbcl.git] / src / runtime / x86-64-arch.c
index 0612ce9..62333e2 100644 (file)
@@ -110,6 +110,10 @@ void arch_skip_instruction(os_context_t *context)
         case trap_FunEndBreakpoint: /* not tested */
             break;
 
+#ifdef LISP_FEATURE_SB_SAFEPOINT
+        case trap_GlobalSafepoint:
+        case trap_CspSafepoint:
+#endif
         case trap_PendingInterrupt:
         case trap_Halt:
         case trap_SingleStepAround:
@@ -276,7 +280,7 @@ sigtrap_handler(int signal, siginfo_t *info, os_context_t *context)
 
     /* This is just for info in case the monitor wants to print an
      * approximation. */
-    current_control_stack_pointer =
+    access_control_stack_pointer(arch_os_get_current_thread()) =
         (lispobj *)*os_context_sp_addr(context);
 
     /* On entry %eip points just after the INT3 byte and aims at the