From aca1c55b7d7a34e98e4354259411076da1a94938 Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Mon, 9 Apr 2007 09:48:26 +0000 Subject: [PATCH] 1.0.4.52: fix GET-SPINLOCK, broken by the COMPARE-AND-EXCHANGE patch * It was behaving as "TRY-SPINLOCK". Oops. * Our test suite did catch this, but it was being masked by other errors. --- src/code/target-thread.lisp | 3 ++- version.lisp-expr | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/code/target-thread.lisp b/src/code/target-thread.lisp index c719833..37d95c7 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) diff --git a/version.lisp-expr b/version.lisp-expr index 9641910..bdb5493 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".) -"1.0.4.51" +"1.0.4.52" -- 1.7.10.4