From 62b2ddf8075c1b82fdb7e8583353e446bb8ed6f3 Mon Sep 17 00:00:00 2001 From: Nathan Froyd Date: Sat, 15 Jul 2006 17:40:09 +0000 Subject: [PATCH] 0.9.14.15: Bandage over the problems noted in "*print-case* in multiple threads broken", sbcl-devel 2006-07-14. --- src/code/target-thread.lisp | 18 ++++++++++++++++-- version.lisp-expr | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/code/target-thread.lisp b/src/code/target-thread.lisp index c77d056..9296ce1 100644 --- a/src/code/target-thread.lisp +++ b/src/code/target-thread.lisp @@ -591,12 +591,26 @@ returns the thread exits." (real-function (coerce function 'function)) (initial-function (lambda () - ;; in time we'll move some of the binding presently done in C - ;; here too + ;; In time we'll move some of the binding presently done in C + ;; here too. + ;; + ;; KLUDGE: Here we have a magic list of variables that are + ;; not thread-safe for one reason or another. As people + ;; report problems with the thread safety of certain + ;; variables, (e.g. "*print-case* in multiple threads + ;; broken", sbcl-devel 2006-07-14), we add a few more + ;; bindings here. The Right Thing is probably some variant + ;; of Allegro's *cl-default-special-bindings*, as that is at + ;; least accessible to users to secure their own libraries. + ;; --njf, 2006-07-15 (let ((*current-thread* thread) (sb!kernel::*restart-clusters* nil) (sb!kernel::*handler-clusters* nil) (sb!kernel::*condition-restarts* nil) + ;; internal printer variables + (sb!impl::*previous-case* nil) + (sb!impl::*previous-readtable-case* nil) + (sb!impl::*internal-symbol-output-fun* nil) (sb!impl::*descriptor-handlers* nil)) ; serve-event (setf (thread-os-thread thread) (current-thread-sap-id)) (with-mutex (*all-threads-lock*) diff --git a/version.lisp-expr b/version.lisp-expr index 848de7d..69bf9b0 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".) -"0.9.14.14" +"0.9.14.15" -- 1.7.10.4