]> granicus.if.org Git - postgresql/commit
Replace memcpy() calls in xlog.c critical sections with struct assignments.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 3 Sep 2012 19:38:42 +0000 (15:38 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 3 Sep 2012 19:39:15 +0000 (15:39 -0400)
commit2a2352e07df9ccc70689061b6453e226a56e7c79
treef5c2a3f5b299500d2d8538f7ddcff7b98b2381f1
parent6259678f8f5443e9d396e20418448b247c6948dd
Replace memcpy() calls in xlog.c critical sections with struct assignments.

This gets rid of a dangerous-looking use of the not-volatile XLogCtl
pointer in a couple of spinlock-protected sections, where the normal
coding rule is that you should only access shared memory through a
pointer-to-volatile.  I think the risk is only hypothetical not actual,
since for there to be a bug the compiler would have to move the spinlock
acquire or release across the memcpy() call, which one sincerely hopes
it will not.  Still, it looks cleaner this way.

Per comment from Daniel Farina and subsequent discussion.
src/backend/access/transam/xlog.c