1.0.5.49: interrupt & GC & PA handling
[sbcl.git] / doc / manual / threading.texinfo
index f858438..759ab0f 100644 (file)
@@ -9,8 +9,9 @@ multiprocessing on machines that have more than one CPU, but it does
 not allow Lisp control of the scheduler.  This is found in the
 SB-THREAD package.
 
-This requires x86/x86-64 and Linux kernel 2.6 or systems with NPTL
-backports.
+This requires Linux (2.6+ or systems with NPTL backports) running on the
+x86 or x86-64 architecture, or SunOS (Solaris) on the x86.  Support for
+threading on Darwin (Mac OS X) and FreeBSD on the x86 is experimental.
 
 @menu
 * Threading basics::            
@@ -32,11 +33,13 @@ backports.
 @include struct-sb-thread-thread.texinfo
 @include var-sb-thread-star-current-thread-star.texinfo
 @include fun-sb-thread-make-thread.texinfo
+@include fun-sb-thread-join-thread.texinfo
+@include condition-sb-thread-join-thread-error.texinfo
+@include fun-sb-thread-join-thread-error-thread.texinfo
 @include fun-sb-thread-thread-alive-p.texinfo
 @include fun-sb-thread-list-all-threads.texinfo
 @include condition-sb-thread-interrupt-thread-error.texinfo
 @include fun-sb-thread-interrupt-thread-error-thread.texinfo
-@include fun-sb-thread-interrupt-thread-error-errno.texinfo
 @include fun-sb-thread-interrupt-thread.texinfo
 @include fun-sb-thread-terminate-thread.texinfo
 
@@ -45,17 +48,16 @@ backports.
 @section Special Variables
 
 The interaction of special variables with multiple threads is mostly
-as one would expect, but users of other Lisps are warned that the
-behaviour of locally bound specials differs in places from what they
-may expect.
+as one would expect, with behaviour very similar to other
+implementations.
 
 @itemize
-@item 
+@item
 global special values are visible across all threads;
 @item
 bindings (e.g. using LET) are local to the thread;
 @item
-initial values in a new thread are taken from the thread that created it. 
+threads do not inherit dynamic bindings from the parent thread
 @end itemize
 
 The last point means that
@@ -66,8 +68,8 @@ The last point means that
   (sb-thread:make-thread (lambda () (print *x*))))
 @end lisp
 
-prints @code{1}.
-    
+prints @code{0} and not @code{1} as of 0.9.6.
+
 @node Mutex Support
 @comment  node-name,  next,  previous,  up
 @section Mutex Support
@@ -93,7 +95,7 @@ if you want a bounded wait.
   (with-mutex (*a-mutex*)
     (format t "Thread ~A got the lock~%" *current-thread*)
     (sleep (random 5)))
-  (format t "Thread ~A dropped lock, dying now~%" *current-thread*)))
+  (format t "Thread ~A dropped lock, dying now~%" *current-thread*))
 
 (make-thread #'thread-fn)
 (make-thread #'thread-fn)