From: Nikodemus S. <de...@us...> - 2010-03-28 15:19:20
|
Update of /cvsroot/sbcl/sbcl In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv27202 Modified Files: NEWS package-data-list.lisp-expr version.lisp-expr Log Message: 1.0.37.8: add ATOMIC-DECF, fix WAIT-ON-SEMAPHORE-BUGLET * We already had SB-EXT:ATOMIC-INCF, so this seems a sensible companion. I really cannot remember why I didn't do things like this in the first place -- lack of time, maybe? * Use ATOMIC-DECF instead of DECF in WAIT-ON-SEMAPHORE to decrement the waitcount: if we unwind from CONDITION-WAIT due to timeout the mutex might no longer be ours. Index: NEWS =================================================================== RCS file: /cvsroot/sbcl/sbcl/NEWS,v retrieving revision 1.1721 retrieving revision 1.1722 diff -u -d -r1.1721 -r1.1722 --- NEWS 28 Mar 2010 13:44:46 -0000 1.1721 +++ NEWS 28 Mar 2010 15:19:11 -0000 1.1722 @@ -2,6 +2,8 @@ changes relative to sbcl-1.0.36: * new feature: added SB-THREAD:TRY-SEMAPHORE, a non-blocking variant of SB-THREAD:WAIT-ON-SEMAPHORE. + * new feature: SB-EXT:ATOMIC-DECF has been added as a companion to + SB-EXT:ATOMIC-INCF. * enhancement: *STANDARD-OUTPUT*, *STANDARD-INPUT*, and *ERROR-OUTPUT* are now bivalent. * enhancement: errors from NO-APPLICABLE-METHOD and @@ -9,6 +11,8 @@ generic function call. * bug fix: correct restart text for the continuable error in MAKE-PACKAGE. * bug fix: a rare case of startup-time page table corruption. + * bug fix: a semaphore with multiple waiters and some of them unwinding due + to timeouts could be left in an inconsistent state. changes in sbcl-1.0.37 relative to sbcl-1.0.36: * enhancement: Backtrace from THROW to uncaught tag on x86oids now shows Index: package-data-list.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/package-data-list.lisp-expr,v retrieving revision 1.524 retrieving revision 1.525 diff -u -d -r1.524 -r1.525 --- package-data-list.lisp-expr 28 Mar 2010 13:37:22 -0000 1.524 +++ package-data-list.lisp-expr 28 Mar 2010 15:19:11 -0000 1.525 @@ -586,6 +586,7 @@ ;; Atomic operations "COMPARE-AND-SWAP" "ATOMIC-INCF" + "ATOMIC-DECF" ;; Time related things "CALL-WITH-TIMING" Index: version.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v retrieving revision 1.4800 retrieving revision 1.4801 diff -u -d -r1.4800 -r1.4801 --- version.lisp-expr 28 Mar 2010 13:44:46 -0000 1.4800 +++ version.lisp-expr 28 Mar 2010 15:19:11 -0000 1.4801 @@ -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.37.7" +"1.0.37.8" |