X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fthread.h;h=1a004c07e75f8e8cde0b85b5bbb044529250dff3;hb=0e3c4b4db102bd204a30402d7e5a0de44aea57ce;hp=6de8f8961f5a993db1eee933ef948f915cb49f15;hpb=9644b3bcfc539ab201da9d3251a3cc3ebc24d457;p=sbcl.git diff --git a/src/runtime/thread.h b/src/runtime/thread.h index 6de8f89..1a004c0 100644 --- a/src/runtime/thread.h +++ b/src/runtime/thread.h @@ -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);