* Add ATOMIC-INCF, ATOMIC-DECF, COMPARE-AND-SWAP, and TRY-SEMAPHORE
to the manual.
* Teach docstrings.lisp to skip &ENVIRONMENT and &WHOLE in
lambda-lists. (Needed by the above.)
(cons (car x) (clean (cdr x) :optional t)))
((cons (member &key))
(cons (car x) (clean (cdr x) :key t)))
(cons (car x) (clean (cdr x) :optional t)))
((cons (member &key))
(cons (car x) (clean (cdr x) :key t)))
+ ((cons (member &whole &environment))
+ ;; Skip these
+ (clean (cdr x) :optional optional :key key))
((cons cons)
(cons
(cond (key (if (consp (caar x))
((cons cons)
(cons
(cond (key (if (consp (caar x))
@menu
* Threading basics::
* Special Variables::
@menu
* Threading basics::
* Special Variables::
* Mutex Support::
* Semaphores::
* Waitqueue/condition variables::
* Mutex Support::
* Semaphores::
* Waitqueue/condition variables::
prints @code{0} and not @code{1} as of 0.9.6.
prints @code{0} and not @code{1} as of 0.9.6.
+@node Atomic Operations
+@comment node-name, next, previous, up
+@section Atomic Operations
+
+SBCL provides a few special purpose atomic operations, particularly
+useful for implementing lockless algorithms.
+
+@include macro-sb-ext-atomic-decf.texinfo
+@include macro-sb-ext-atomic-incf.texinfo
+@include macro-sb-ext-compare-and-swap.texinfo
+
@node Mutex Support
@comment node-name, next, previous, up
@section Mutex Support
@node Mutex Support
@comment node-name, next, previous, up
@section Mutex Support
@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-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
@node Waitqueue/condition variables
@include fun-sb-thread-wait-on-semaphore.texinfo
@node Waitqueue/condition variables
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)