spots. Global state in closures, etc etc
(4) suggest strategies (e.g. rewrites of affected code, suitable
- locks and lock acquitision/release places) to fix the issues
+ locks and lock acquisition/release places) to fix the issues
revealed in (2) and (3)
(5) implement same
thread-safe, so there is currently a big lock (*big-compiler-lock*)
around all calls to the compiler or fasloader
+Note that INFO functions use a shared cache for the globaldb, and
+don't lock for cache invalidation. This will need fixing when BCL is
+removed.
+
*COMPILE-FILE-PATHNAME*
*COMPILE-FILE-TRUENAME*
*COMPILE-PRINT*
SB-VM:*STATIC-SPACE-FREE-POINTER*
SB-VM:*INITIAL-DYNAMIC-SPACE-FREE-POINTER*
-SB-VM:*CURRENT-CATCH-BLOCK*
+SB-VM:*CURRENT-CATCH-BLOCK* ; bound at thread entry (in C)
SB-VM:*STATIC-SYMBOLS*
SB-VM:*CONTROL-STACK-START* ; safe, bound at thread entry
SB-VM:*READ-ONLY-SPACE-FREE-POINTER*
SB-VM:*BINDING-STACK-START* ; safe, bound at thread entry
SB-VM:*CONTROL-STACK-END* ; safe, bound at thread entry
-SB-VM::*CURRENT-UNWIND-PROTECT-BLOCK*
+SB-VM::*CURRENT-UNWIND-PROTECT-BLOCK* ; bound at thread entry (in C)
SB-VM::*FREE-TLS-INDEX*
SB-VM::*BINDING-STACK-POINTER*
SB-VM::*ALLOCATION-POINTER* ; may be mostly unused ?
SB-IMPL::*CURRENT-UNWIND-PROTECT-BLOCK*
SB-IMPL::*CURRENT-CATCH-BLOCK*
SB-IMPL::*READ-ONLY-SPACE-FREE-POINTER*
-SB-VM::*ALIEN-STACK*
+SB-VM::*ALIEN-STACK* ; bound in create_thread_struct()
SB-IMPL::*OBJECTS-PENDING-FINALIZATION* ; needs locking for writers
SB-KERNEL:*UNIVERSAL-FUN-TYPE*
SB-KERNEL:*COLD-INIT-COMPLETE-P*
SB-KERNEL:*UNIVERSAL-TYPE* ; readonly
-SB-KERNEL:*HANDLER-CLUSTERS*
+SB-KERNEL:*HANDLER-CLUSTERS* ; bound per-thread
SB-KERNEL:*EMPTY-TYPE* ; readonly
SB-KERNEL:*MAXIMUM-ERROR-DEPTH*
-SB-KERNEL:*CONDITION-RESTARTS*
+SB-KERNEL:*CONDITION-RESTARTS* ; bound per-thread
SB-KERNEL:*TYPE-SYSTEM-INITIALIZED*
-SB-KERNEL:*RESTART-CLUSTERS*
+SB-KERNEL:*RESTART-CLUSTERS* ; bound per-thread
SB-KERNEL::*MAKE-VALUES-TYPE-CACHED-CACHE-VECTOR*
SB-KERNEL::*BUILT-IN-CLASS-CODES* ; readonly
SB-KERNEL::*DEF!STRUCT-TYPE-MAKE-LOAD-FORM-FUN*
SB-IMPL::*BQ-DOT-FLAG* ; readonly
SB-IMPL::*CIRCULARITY-COUNTER*
SB-IMPL::*DIGITS*
-SB-IMPL::*PREVIOUS-READTABLE-CASE*
+SB-IMPL::*PREVIOUS-READTABLE-CASE* ; FIXME: printer not threadsafe
SB-IMPL::*BQ-VECTOR-FLAG* ; readonly
SB-IMPL::*ABBREV-WEEKDAY-TABLE*
SB-IMPL::*LOGICAL-HOSTS*
SB-IMPL::*PERIODIC-POLLING-FUNCTION*
SB-IMPL::*ABORTED-COMPILATION-UNIT-COUNT*
SB-IMPL::*LONG-WEEKDAY-TABLE*
-SB-IMPL::*INTERNAL-SYMBOL-OUTPUT-FUN*
+SB-IMPL::*INTERNAL-SYMBOL-OUTPUT-FUN* ; FIXME: printer not threadsafe
SB-IMPL::*BACKQUOTE-COUNT* ; bound
SB-IMPL::*DIGIT-BASES*
SB-IMPL::*PREVIOUS-DRIBBLE-STREAMS*
SB-IMPL::*IGNORE-WILDCARDS*
SB-IMPL::*INCH-PTR*
SB-IMPL::*SHARP-EQUAL-ALIST*
-SB-IMPL::*PREVIOUS-CASE*
+SB-IMPL::*PREVIOUS-CASE* ; FIXME: printer not threadsafe
*INLINE-EXPANSION-LIMIT*
*DERIVE-FUNCTION-TYPES*
*MACROEXPAND-HOOK*
*RANDOM-STATE*
-SB-BIGNUM::*TRUNCATE-Y*
-SB-BIGNUM::*TRUNCATE-X*
-
SB-INT:*CL-PACKAGE* ; readonly
SB-INT:*KEYWORD-PACKAGE* ; readonly
SB-INT:*SETF-FDEFINITION-HOOK*