0.9.3.25
authorGabor Melis <mega@hotpop.com>
Thu, 4 Aug 2005 09:06:25 +0000 (09:06 +0000)
committerGabor Melis <mega@hotpop.com>
Thu, 4 Aug 2005 09:06:25 +0000 (09:06 +0000)
  * bug fix: release-foreground doesn't choke on session lock if
   there is only one thread in the session

BUGS
NEWS
src/code/target-thread.lisp
version.lisp-expr

diff --git a/BUGS b/BUGS
index ffaacfa..07d236b 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1074,13 +1074,6 @@ WORKAROUND:
   around the same time regarding a call to LIST on sparc with 1000
   arguments) and other implementation limit constants.
 
-311: "Tokeniser not thread-safe"
-    (see also Robert Marlow sbcl-help "Multi threaded read chucking a
-    spak" 2004-04-19)
-  The tokenizer's use of *read-buffer* and *read-buffer-length* causes
-  spurious errors should two threads attempt to tokenise at the same
-  time.
-
 314: "LOOP :INITIALLY clauses and scope of initializers"
   reported by Bruno Haible sbcl-devel "various SBCL bugs" from CLISP
   test suite, originally by Thomas F. Burdick.
diff --git a/NEWS b/NEWS
index d59fb7f..a69682a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -17,6 +17,9 @@ changes in sbcl-0.9.4 relative to sbcl-0.9.3:
   * bug fix: degree sign (<U00B0>) could not be encoded in KOI8-R.
   * bug fix: correct pathname printing with printer escaping is on.
     (thanks to Kevin Reid)
+  * threads
+    ** bug fix: release-foreground doesn't choke on session lock if
+       there is only one thread in the session
 
 changes in sbcl-0.9.3 relative to sbcl-0.9.2:
   * New feature: Experimental support for bivalent streams: streams
index 81e7130..b859ea7 100644 (file)
@@ -418,13 +418,14 @@ interactive."
 (defun release-foreground (&optional next)
   #!+sb-doc
   "Background this thread.  If NEXT is supplied, arrange for it to
-have the foreground next"
+have the foreground next."
   #!-sb-thread (declare (ignore next))
   #!-sb-thread nil
   #!+sb-thread
   (with-session-lock (*session*)
-    (setf (session-interactive-threads *session*)
-          (delete *current-thread* (session-interactive-threads *session*)))
+    (when (rest (session-interactive-threads *session*))
+      (setf (session-interactive-threads *session*)
+            (delete *current-thread* (session-interactive-threads *session*))))
     (when next
       (setf (session-interactive-threads *session*)
             (list* next
index a7e311f..3e81dbb 100644 (file)
@@ -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".)
-"0.9.3.24"
+"0.9.3.25"