X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=doc%2Fmanual%2Fthreading.texinfo;h=21d27560ced2d921352736c3d9c441959ecfe77d;hb=219cc40793f9c82fb943b29a1846f898f4f9de1e;hp=56a73e7690cc7334e38431357b2a59ec5054c188;hpb=c3010940504e924be95485ac61366d2e4f0a97b2;p=sbcl.git diff --git a/doc/manual/threading.texinfo b/doc/manual/threading.texinfo index 56a73e7..21d2756 100644 --- a/doc/manual/threading.texinfo +++ b/doc/manual/threading.texinfo @@ -12,8 +12,8 @@ SB-THREAD package. Threads are part of the default build on x86[-64] Linux only. They are also experimentally supported on: x86[-64] Darwin (Mac OS X), -x86[-64] FreeBSD, and x86 SunOS (Solaris). On these platforms threads -must be explicitly enabled at build-time, see @file{INSTALL} for +x86[-64] FreeBSD, x86 SunOS (Solaris), and PPC Linux. On these platforms +threads must be explicitly enabled at build-time, see @file{INSTALL} for directions. @menu @@ -107,6 +107,16 @@ useful for implementing lockless algorithms. @include macro-sb-ext-atomic-incf.texinfo @include macro-sb-ext-compare-and-swap.texinfo +@unnumberedsubsec CAS Protocol + +Our @code{compare-and-swap} is user-extensible using a protocol similar +to @code{setf}: + +@include macro-sb-ext-cas.texinfo +@include macro-sb-ext-define-cas-expander.texinfo +@include macro-sb-ext-defcas.texinfo +@include fun-sb-ext-get-cas-expansion.texinfo + @node Mutex Support @comment node-name, next, previous, up @section Mutex Support @@ -142,25 +152,32 @@ if you want a bounded wait. @include fun-sb-thread-make-mutex.texinfo @include fun-sb-thread-mutex-name.texinfo @include fun-sb-thread-mutex-value.texinfo -@include fun-sb-thread-get-mutex.texinfo +@include fun-sb-thread-grab-mutex.texinfo @include fun-sb-thread-release-mutex.texinfo @include macro-sb-thread-with-mutex.texinfo @include macro-sb-thread-with-recursive-lock.texinfo +@include fun-sb-thread-get-mutex.texinfo @node Semaphores @comment node-name, next, previous, up @section Semaphores -described here should be considered -experimental, subject to API changes without notice. +Semaphores are among other things useful for keeping track of a +countable resource, eg. messages in a queue, and sleep when the +resource is exhausted. @include struct-sb-thread-semaphore.texinfo @include fun-sb-thread-make-semaphore.texinfo -@include fun-sb-thread-semaphore-count.texinfo -@include fun-sb-thread-semaphore-name.texinfo @include fun-sb-thread-signal-semaphore.texinfo -@include fun-sb-thread-try-semaphore.texinfo @include fun-sb-thread-wait-on-semaphore.texinfo +@include fun-sb-thread-try-semaphore.texinfo +@include fun-sb-thread-semaphore-count.texinfo +@include fun-sb-thread-semaphore-name.texinfo + +@include struct-sb-thread-semaphore-notification.texinfo +@include fun-sb-thread-make-semaphore-notification.texinfo +@include fun-sb-thread-semaphore-notification-status.texinfo +@include fun-sb-thread-clear-semaphore-notification.texinfo @node Waitqueue/condition variables @comment node-name, next, previous, up