gencgc: More precise conservatism for pointers to boxed pages.
[sbcl.git] / src / runtime / thread.h
index 6de8f89..1a004c0 100644 (file)
@@ -303,9 +303,10 @@ static inline struct thread *arch_os_get_current_thread(void)
     return me;
 
 #else
-    if (!all_threads)
-        /* no need to bother */
-        return 0;
+
+# if defined(LISP_FEATURE_X86)
+    if (!all_threads) return 0;
+#endif
 
     /* Otherwise, use pthreads to find the right value.  We do not load
      * directly from %fs:this even on x86 platforms (like Linux and
@@ -337,10 +338,10 @@ extern kern_return_t mach_lisp_thread_destroy(struct thread *thread);
 #endif
 
 typedef struct init_thread_data {
+    sigset_t oldset;
 #ifdef LISP_FEATURE_SB_SAFEPOINT
     struct gcing_safety safety;
 #endif
-    void *dummy;
 } init_thread_data;
 
 #ifdef LISP_FEATURE_SB_SAFEPOINT
@@ -418,6 +419,14 @@ void pop_gcing_safety(struct gcing_safety *from)
 
 int check_pending_thruptions(os_context_t *ctx);
 
+void attach_os_thread(init_thread_data *);
+void detach_os_thread(init_thread_data *);
+
+# if defined(LISP_FEATURE_SB_SAFEPOINT_STRICTLY) && !defined(LISP_FEATURE_WIN32)
+
+void signal_handler_callback(lispobj, int, void *, void *);
+# endif
+
 #endif
 
 extern void create_initial_thread(lispobj);