From df61d054712f14fda874034fde70a269a76c792b Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Sat, 2 Jul 2005 15:33:46 +0000 Subject: [PATCH] 0.9.2.14: Make it build, at least, on sparc. --- src/code/target-thread.lisp | 28 +++++++++++++--------------- src/runtime/thread.c | 2 ++ version.lisp-expr | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/code/target-thread.lisp b/src/code/target-thread.lisp index 176eeb6..dd25ecb 100644 --- a/src/code/target-thread.lisp +++ b/src/code/target-thread.lisp @@ -28,28 +28,26 @@ (defun thread-state (thread) (let ((state - (sb!kernel:make-lisp-obj - (sb!sys:sap-int - (sb!sys:sap-ref-sap (thread-%sap thread) - (* sb!vm::thread-state-slot - sb!vm::n-word-bytes)))))) + (sb!sys:sap-int + (sb!sys:sap-ref-sap (thread-%sap thread) + (* sb!vm::thread-state-slot + sb!vm::n-word-bytes))))) (ecase state - (0 :starting) - (1 :running) - (2 :suspended) - (3 :dead)))) + (#.(sb!vm:fixnumize 0) :starting) + (#.(sb!vm:fixnumize 1) :running) + (#.(sb!vm:fixnumize 2) :suspended) + (#.(sb!vm:fixnumize 3) :dead)))) (defun %set-thread-state (thread state) (setf (sb!sys:sap-ref-sap (thread-%sap thread) (* sb!vm::thread-state-slot sb!vm::n-word-bytes)) (sb!sys:int-sap - (sb!kernel:get-lisp-obj-address - (ecase state - (:starting 0) - (:running 1) - (:suspended 2) - (:dead 3)))))) + (ecase state + (:starting #.(sb!vm:fixnumize 0)) + (:running #.(sb!vm:fixnumize 1)) + (:suspended #.(sb!vm:fixnumize 2)) + (:dead #.(sb!vm:fixnumize 3)))))) (defun thread-alive-p (thread) (not (eq :dead (thread-state thread)))) diff --git a/src/runtime/thread.c b/src/runtime/thread.c index 4b39120..dc3fb2d 100644 --- a/src/runtime/thread.c +++ b/src/runtime/thread.c @@ -31,6 +31,7 @@ volatile lispobj all_threads_lock; extern struct interrupt_data * global_interrupt_data; extern int linux_no_threads_p; +#ifdef LISP_FEATURE_SB_THREAD /* When trying to get all_threads_lock one should make sure that * sig_stop_for_gc is not blocked. Else there would be a possible * deadlock: gc locks it, other thread blocks signals, gc sends stop @@ -74,6 +75,7 @@ void check_sig_stop_for_gc_can_arrive_or_lose() release_spinlock(&all_threads_lock); \ thread_sigmask(SIG_SETMASK,&_oldset,0); \ } +#endif int initial_thread_trampoline(struct thread *th) diff --git a/version.lisp-expr b/version.lisp-expr index b0f8749..a448bc9 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.9.2.13" +"0.9.2.14" -- 1.7.10.4