Commit 78652a33 authored by Robert Haas's avatar Robert Haas

Remove cautions about using volatile from spin.h.

Commit 0709b7ee obsoleted this comment
but neglected to update it.

Thomas Munro
parent a53c06a1
......@@ -25,15 +25,10 @@
* Callers must beware that the macro argument may be evaluated multiple
* times!
*
* CAUTION: Care must be taken to ensure that loads and stores of
* shared memory values are not rearranged around spinlock acquire
* and release. This is done using the "volatile" qualifier: the C
* standard states that loads and stores of volatile objects cannot
* be rearranged *with respect to other volatile objects*. The
* spinlock is always written through a volatile pointer by the
* spinlock macros, but this is not sufficient by itself: code that
* protects shared data with a spinlock MUST reference that shared
* data through a volatile pointer.
* Load and store operations in calling code are guaranteed not to be
* reordered with respect to these operations, because they include a
* compiler barrier. (Before PostgreSQL 9.5, callers needed to use a
* volatile qualifier to access data protected by spinlocks.)
*
* Keep in mind the coding rule that spinlocks must not be held for more
* than a few instructions. In particular, we assume it is not possible
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment