X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-thread.lisp;h=be8eeb4c4d95cc631585898e42a611b081ca8393;hb=7e24349c17298e2959e853ea411b5f65d9f7f332;hp=c71983366da90595ea8ba4f57c5b22a893a7947e;hpb=085501b44cc1cbdd9e260139d30b383372ddd1b8;p=sbcl.git diff --git a/src/code/target-thread.lisp b/src/code/target-thread.lisp index c719833..be8eeb4 100644 --- a/src/code/target-thread.lisp +++ b/src/code/target-thread.lisp @@ -197,7 +197,8 @@ in future versions." ;; %instance-set-conditional can test for 0 (which is a fixnum) and ;; store any value #!+sb-thread - (compare-and-exchange-spinlock-value spinlock 0 1) + (loop until + (eql 0 (compare-and-exchange-spinlock-value spinlock 0 1))) t) (defun release-spinlock (spinlock) @@ -498,7 +499,7 @@ this semaphore, then N of them is woken up." (when *session* (%delete-thread-from-session thread *session*))) #!+sb-lutex - (when (thread-interruptions-lock thread) + (without-gcing (/show0 "FREEING MUTEX LUTEX") (with-lutex-address (lutex (mutex-lutex (thread-interruptions-lock thread))) (%lutex-destroy lutex))))