Scieneer Common Lisp 1.3.9 online documentation

kernel:with-atomic-modification (oldvar place) &parse-body (body decls) &environment env[Macro]

Atomically modify a given place with the result of the body. The oldvar is bound to the value in place and the body evaluated to generate a new value. Then an attempt is made to atomically update the place from oldvar to this new value, and if unsuccessful then loop re-binding oldvar and reevaluating the body. The new value is returned. See also: kernel:setf-conditional, and kernel:with-atomic-getf-modification.