X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=doc%2Finternals-notes%2Fthreading-specials;h=56895e721fdc6ddd758adf3c6e989e5e55ae99e0;hb=c553e4be6da2d18f0827f190589c88e837b8b8a6;hp=705832becf1160a04f3d3a9322da9a1b8ccc29ba;hpb=66b919851a8564e8f21247703d54c01c293414f8;p=sbcl.git diff --git a/doc/internals-notes/threading-specials b/doc/internals-notes/threading-specials index 705832b..56895e7 100644 --- a/doc/internals-notes/threading-specials +++ b/doc/internals-notes/threading-specials @@ -15,13 +15,12 @@ The goals are When looking at a particular symbol, please annotate it in this file when you figure out what it's for and how it's - changed. To give us some confidence that we have reasonable - coverage, please don't just delete it if it looks ok. Symbols + changed. To give us some confidence that we have reasonable + coverage, please don't just delete it if it looks ok. Symbols shoud only be deleted here if they're obviously not specials at all (e.g. functions with * in their names), or if the same - commit actually rids SBCL of the symbol itself (as we may soon - do for e.g. SB-SYS:*TASK-SELF*). Otherwise, just add a - comment saying "read-only" or "unused" or whatever. + commit actually rids SBCL of the symbol itself. Otherwise, + just add a comment saying "read-only" or "unused" or whatever. (3) anything else that comes to mind as potential trouble spots. Global state in closures, etc etc @@ -98,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* @@ -911,15 +902,6 @@ SB-KERNEL::*BUILT-IN-CLASSES* = dead stuff -SB-SYS:*TASK-NOTIFY* ; unused -SB-SYS:*TASK-SELF* ; unused -SB-SYS:*TASK-DATA* ; unused -SB-SYS:*TYPESCRIPTPORT* ' unused -SB-THREAD::*FOREGROUND-THREAD-STACK* ; unused, I think - - - - ------------------------------------------------------------------------ = unclassified