diff --git a/docs/ispc.txt b/docs/ispc.txt index 52f02e34..09e3c590 100644 --- a/docs/ispc.txt +++ b/docs/ispc.txt @@ -1833,7 +1833,10 @@ One thing to note is that that the value being added to here is a ``uniform`` integer, while the increment amount and the return value are ``varying``. In other words, the semantics are that each running program instance individually issues the atomic operation with its own ``delta`` -value and gets the previous value of ``val`` back in return. +value and gets the previous value of ``val`` back in return. The atomics +for the running program instances may be issued in arbitrary order; it's +not guaranteed that they will be issued in ``programIndex`` order, for +example. Here are the declarations of the ``int32`` variants of these functions. There are also ``int64`` equivalents as well as variants that take @@ -1865,7 +1868,7 @@ compares the value in "val" to "compare"--if they match, it assigns into the code; it ensures that all memory reads and writes prior to be barrier complete before any reads or writes after the barrier are issued. See the `Linux kernel documentation on memory barriers`_ for an excellent -writeup on the need for that the use of memory barriers in multi-threaded +writeup on the need for and the use of memory barriers in multi-threaded code. .. _Linux kernel documentation on memory barriers: http://www.kernel.org/doc/Documentation/memory-barriers.txt