-\f
-/* threads */
-
-/* no threading in any *BSD variant on any CPU (yet? in sbcl-0.8.0 anyway) */
-#ifdef LISP_FEATURE_SB_THREAD
-#error "Define threading support functions"
-#else
-int arch_os_thread_init(struct thread *thread) {
- stack_t sigstack;
-#ifdef LISP_FEATURE_C_STACK_IS_CONTROL_STACK
- /* Signal handlers are run on the control stack, so if it is exhausted
- * we had better use an alternate stack for whatever signal tells us
- * we've exhausted it */
- sigstack.ss_sp=((void *) thread)+dynamic_values_bytes;
- sigstack.ss_flags=0;
- sigstack.ss_size = 32*SIGSTKSZ;
- sigaltstack(&sigstack,0);
-#endif
- return 1; /* success */
-}
-int arch_os_thread_cleanup(struct thread *thread) {
- return 1; /* success */
-}
-#endif
-
-#if defined(LISP_FEATURE_DARWIN) && defined(LISP_FEATURE_X86)
-static void x86_darwin_init()
-{
- struct sigaltstack sigstack;
- sigstack.ss_sp = os_allocate(32*SIGSTKSZ);
- if (sigstack.ss_sp) {
- sigstack.ss_flags=0;
- sigstack.ss_size = 32*SIGSTKSZ;
- sigaltstack(&sigstack,0);
- }
-}
-#endif