1.0.4.85: small PCL cleanups and thread-safety notes
[sbcl.git] / doc / internals-notes / threading-specials
index d27b248..914e83f 100644 (file)
@@ -130,6 +130,10 @@ bound & safe:
    SB-PCL::*ALLOW-FORWARD-REFERENCED-CLASSES-IN-CPL-P* 
    SB-PCL::*IN-OBSOLETE-INSTANCE-TRAP* 
    SB-PCL::*PRECOMPILING-LAP* 
+   SB-PCL::*CACHE-MISS-VALUES-STACK* 
+
+protected by PCL-LOCK:
+   SB-PCL::*PREVIOUS-NWRAPPERS* 
 
 believed protected by the compiler-lock:
    SB-PCL::*ALL-CTORS* 
@@ -138,11 +142,9 @@ believed protected by the compiler-lock:
    SB-PCL::*VAR-DECLARATIONS-WITHOUT-ARG* 
 
 potentially unsafe:
-   SB-PCL::*CACHE-MISS-VALUES-STACK* 
    SB-PCL::*CLASS-EQ-SPECIALIZER-METHODS* 
    SB-PCL::*EFFECTIVE-METHOD-CACHE* 
    SB-PCL::*EQL-SPECIALIZER-METHODS* 
-   SB-PCL::*FREE-HASH-TABLES* 
    SB-PCL::*METHOD-FUNCTION-PLIST* 
    SB-PCL::*PV-KEY-TO-PV-TABLE-TABLE* 
    SB-PCL::*PV-TABLE-CACHE-UPDATE-INFO* 
@@ -205,7 +207,6 @@ SB-PCL::*OPTIMIZE-SPEED*
 SB-PCL::*PCL-CLASS-BOOT* 
 SB-PCL::*PCL-LOCK*                         ; protecting the rest
 SB-PCL::*PCL-PACKAGE* 
-SB-PCL::*PREVIOUS-NWRAPPERS* 
 SB-PCL::*RAISE-METATYPES-TO-CLASS-P* 
 SB-PCL::*READERS-FOR-THIS-DEFCLASS*
 SB-PCL::*REBOUND-EFFECTIVE-METHOD-GENSYMS*
@@ -539,13 +540,10 @@ SB-THREAD::*BACKGROUND-THREADS-WAIT-FOR-DEBUGGER* ; intentionally global
 *PRINT-LINES* 
 *PRINT-ESCAPE* 
 *PRINT-LEVEL* 
-*ERROR-PRINT-LENGTH*
-*ERROR-PRINT-LINES*
 *READ-EVAL* 
 *PRINT-ESCAPE* 
 *TRACE-OUTPUT* 
 SB-IMPL::*INSPECT-LENGTH* 
-*ERROR-PRINT-LEVEL*
 SB-IMPL::*DRIBBLE-STREAM*         ; what to do with dribble in threaded lisp?
 SB-IMPL::*HELP-FOR-INSPECT*       ; read-only
 *PRINT-ARRAY*                     
@@ -701,7 +699,6 @@ SB-C::*BLOCK-COMPILE-ARG*
 SB-C::*COMPILER-ERROR-PRINT-LENGTH* 
 SB-C::*CONTINUATION-NUMBER* 
 SB-C::*PREV-SEGMENT*
-SB-C::*ALL-COMPONENTS*
 SB-C::*CONTROL-DELETED-BLOCK-EVENT-INFO* 
 SB-C::*ALLOW-DEBUG-CATCH-TAG* 
 SB-C::*ID-LABELS* 
@@ -806,7 +803,6 @@ SB-FASL::*CURRENT-FOP-TABLE-SIZE*
 SB-FASL::*FOP-STACK-POINTER-ON-ENTRY*
 SB-FASL::*FREE-FOP-TABLES* 
 SB-FASL::*LOAD-SYMBOL-BUFFER* 
-SB-FASL::*CURRENT-CATCH-BLOCK* 
 SB-FASL::*FASL-HEADER-STRING-START-STRING* 
 SB-FASL::DUMP-FOP* 
 SB-FASL::FOP-LIST* 
@@ -848,18 +844,13 @@ SB-KERNEL:*NEED-TO-COLLECT-GARBAGE*
 SB-KERNEL:*ALREADY-MAYBE-GCING*
 SB-KERNEL:*PSEUDO-ATOMIC-INTERRUPTED* ; bound
 SB-KERNEL::*GC-TRIGGER*  ; I think this is dead, check
-SB-IMPL::*CURRENT-UNWIND-PROTECT-BLOCK*
-SB-IMPL::*CURRENT-CATCH-BLOCK*
+SB-IMPL::*CURRENT-UNWIND-PROTECT-BLOCK* ; thread-local
 SB-IMPL::*READ-ONLY-SPACE-FREE-POINTER*
 SB-VM::*ALIEN-STACK*  ; bound in create_thread_struct()
 
 SB-IMPL::*OBJECTS-PENDING-FINALIZATION*  ; needs locking for writers
 
-*GC-NOTIFY-STREAM*   ; going away
-*BEFORE-GC-HOOKS*    ; must be global
-*AFTER-GC-HOOKS*     ; ditto
-*GC-NOTIFY-AFTER*    ; going away
-*GC-NOTIFY-BEFORE*   ; going away
+*AFTER-GC-HOOKS*     ; must be global
 *GC-RUN-TIME*        
 SB-INT:*N-BYTES-FREED-OR-PURIFIED* 
 
@@ -1044,7 +1035,7 @@ SB-IMPL::*INTEGER-READER-SAFE-DIGITS*
 SB-IMPL::*TIMEZONE-TABLE* 
 SB-IMPL::*BQ-COMMA-FLAG*                                ; readonly
 SB-IMPL::*PRINT-OBJECT-IS-DISABLED-P*
-SB-IMPL::*MERGE-SORT-TEMP-VECTOR*  ; FIXME: SORT non-threadsafe, non-reentrant
+SB-IMPL::*MERGE-SORT-TEMP-VECTOR*   ; safe, allocated per-thread
 SB-IMPL::*PROFILE-HASH-CACHE* 
 SB-IMPL::*FIXNUM-POWER--1* 
 SB-IMPL::*SHARP-EQUAL-CIRCLE-TABLE*
@@ -1057,7 +1048,7 @@ SB-IMPL::*CLOSE-IN-PARENT*
 SB-IMPL::*IN-COMPILATION-UNIT*
 SB-IMPL::*CIRCULARITY-HASH-TABLE* 
 SB-IMPL::*LOAD-PRINT-STUFF*
-SB-IMPL::*ZAP-ARRAY-DATA-TEMP*       ; FIXME: ADJUST-ARRAY non-threadsafe
+SB-IMPL::*ZAP-ARRAY-DATA-TEMP*      ; safe, allocated per-thread
 SB-IMPL::*ACTIVE-PROCESSES* 
 SB-IMPL::*SHARP-SHARP-ALIST*     
 SB-IMPL::*BASE-POWER*