X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=doc%2Finternals-notes%2Fthreading-specials;h=4b4cfd3856fac06f84f5fc91b784ffe53dfac632;hb=c0f9314af1b6f7aa67e6c5db523d6ddef735986c;hp=73f5f068d84c2498b5b991eea8b6d7e8a2b1c45b;hpb=e0fd6a6ba914bedb6939ddbc5cb4c5ce94ca87c0;p=sbcl.git diff --git a/doc/internals-notes/threading-specials b/doc/internals-notes/threading-specials index 73f5f06..4b4cfd3 100644 --- a/doc/internals-notes/threading-specials +++ b/doc/internals-notes/threading-specials @@ -97,19 +97,11 @@ SB-LOOP::*LOOP-BIND-STACK* = PCL -The PCL authors thought a bit about thread safety, adding -(without-interrupts ...) in some places to protect critical forms. -We've implemented their without-interrupts macro as an acquitision of -*pcl-lock*, so we hope they've done it properly. - -Largish parts of PCL should also be protected by the compiler lock, -but sometimes it can be hard to tell... - -The most suspicious parts should probably be tested by asserting -at various sites that the *PCL-LOCK* is held. +Critical parts of PCL are protected by *world-lock* (particularly +those dealing with class graph changes), and some with finer-grained locks. accesses locked with a nice granularity - SB-PCL::*FIND-CLASS* + SB-PCL::*CLASSOID-CELLS* read-only & safe: SB-PCL::*BUILT-IN-TYPEP-COST* @@ -1025,7 +1017,6 @@ 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* ; safe, allocated per-thread SB-IMPL::*PROFILE-HASH-CACHE* SB-IMPL::*FIXNUM-POWER--1* SB-IMPL::*SHARP-EQUAL-CIRCLE-TABLE* @@ -1038,7 +1029,6 @@ 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* ; safe, allocated per-thread SB-IMPL::*ACTIVE-PROCESSES* SB-IMPL::*SHARP-SHARP-ALIST* SB-IMPL::*BASE-POWER*