Hi,<div><br></div><div>One more hopefully quick question about atomic-incf/atomic-decf:</div><div><br></div><div>Can the return value of an atomic-incf/decf be relied upon as the value right after that particular incf occurrs?  Given it's a compare and swap, I'm guessing that the answer to this question is "yes".<br>
<br></div><div>Another way to ask the same question is, if I perform two atomic-incf's in a row (i.e., as simultaneously as the x86 platform will allow me), will one of the atomic-incf calls return the intermediate value, and the other atomic-incf return the newest value?</div>
<div><br></div><div>E.g.:</div><div>A long time ago, in some thread far far away:</div><div>(defvar *x* 3)</div><div><br></div><div>In a current time, with two concurrent threads</div><div><br></div><div>Thread A:</div><div>
(atomic-incf *x*) ; sets *x* to 4, returns 4</div><div><br></div><div>Thread B:</div><div>(atomic-incf *x*) ; sets *x* to 5, returns 5</div><div><br></div><div>Of course if Thread B occurred before Thread A, the B transcript would have "sets *x* to 4, returns 4" and the A transcript would also change to use the number 5.</div>
<div><br></div><div>Hopefully between my two versions of the question, my real question is clear.</div><div><br></div><div>Thanks,</div><div>David</div>