From: Nikodemus S. <de...@us...> - 2007-05-30 13:56:06
|
Update of /cvsroot/sbcl/sbcl In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv19748 Modified Files: NEWS version.lisp-expr Log Message: 1.0.6.7: thread-safe UPDATE-DFUN * Make GET-SPINLOCK detect unwanted recursion. Despite the old comments in GET/RELEASE-SPINLOCK, we can store EQ-comperable lisp objects in SPINLOCK-VALUE -- just like we do for mutexes. (Potentially freshly consed bignums that the old comments referred to are not sanely EQ-comperable, of course.) * Implement WITH-RECURSIVE-SPINLOCK. * Adjust thread.impure.lisp accordingly. * Add a per generic function spinlock. (We could use mutexes, but since contention is presumed to be rare we don't want to pay the wakeup syscall cost for every UPDATE-DFUN call: if and when our mutexes get smart doing the wakeup only when there are threads waiting we can and should switch this -- and probably almost all uses of spinlocks -- to mutexes.) This spinlock is grabbed to ensure that the dfun state, fin function, and name are all updated atomically. Index: NEWS =================================================================== RCS file: /cvsroot/sbcl/sbcl/NEWS,v retrieving revision 1.1204 retrieving revision 1.1205 diff -u -d -r1.1204 -r1.1205 --- NEWS 28 May 2007 18:52:26 -0000 1.1204 +++ NEWS 30 May 2007 13:55:59 -0000 1.1205 @@ -1,10 +1,16 @@ ;;;; -*- coding: utf-8; -*- changes in sbcl-1.0.7 relative to sbcl-1.0.6: + * minor incompatible change: the (unsupported) spinlock interface + has changed: free spinlock now has the value NIL, and a held spinlock + has the owning thread as its value. * enhancement: name of a socket-stream is now "a socket" instead of "a constant string". * bug fix: the cache used by the CLOS to store precomputed effective methods, slot offsets, and constant return values is now thread and interrupt safe. + * bug fix: generic function dispatch function updating is now thread + and interrupt safe (in the sense that the known issues have been + fixed). changes in sbcl-1.0.6 relative to sbcl-1.0.5: * new contrib: sb-cover, an experimental code coverage tool, is included Index: version.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v retrieving revision 1.3430 retrieving revision 1.3431 diff -u -d -r1.3430 -r1.3431 --- version.lisp-expr 29 May 2007 15:31:48 -0000 1.3430 +++ version.lisp-expr 30 May 2007 13:55:59 -0000 1.3431 @@ -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.6.6" +"1.0.6.7" |