X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-thread.lisp;h=dd25ecbbce9595f49501c954a98ded9342935dfe;hb=bb756e3d4b19c30d4a9cd4250b606c5969613ad9;hp=176eeb6ca0fe3421509fd408cecdef5c5ea905a9;hpb=94ea2b2082deaa0331dfb66fa6af6ca12dd8dc83;p=sbcl.git 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))))