volatile-ize. snaparray
authorRobert Haas <rhaas@postgresql.org>
Thu, 27 Oct 2011 12:21:10 +0000 (08:21 -0400)
committerRobert Haas <rhaas@postgresql.org>
Thu, 27 Oct 2011 12:21:10 +0000 (08:21 -0400)
src/backend/storage/ipc/snaparray.c

index 79eec1c586108a51eadff2ebab2991285084fa66..27aa73375b0c9a42edf24b9267629e21720b8ae1 100644 (file)
@@ -114,7 +114,7 @@ typedef struct
        TransactionId  *buffer;
 } SnapArrayCacheStruct;
 
-static SnapArrayStruct *SnapArray;
+static volatile SnapArrayStruct *SnapArray;
 static SnapArrayCacheStruct       SnapArrayCache;
 static TransactionId   xid_cmp_base;
 
@@ -1437,16 +1437,16 @@ SnapArrayReadData(uint64 start_location, uint64 stop_location,
 
        start_location %= SnapArray->ring_buffer_size;
        if (start_location + nxids <= (uint64) SnapArray->ring_buffer_size)
-               memcpy(buffer, &SnapArray->buffer[start_location],
+               memcpy(buffer, (void *) &SnapArray->buffer[start_location],
                           nxids * sizeof(TransactionId));
        else
        {
                uint64          entries_before_wrap;
 
                entries_before_wrap = SnapArray->ring_buffer_size - start_location;
-               memcpy(buffer, &SnapArray->buffer[start_location],
+               memcpy(buffer, (void *) &SnapArray->buffer[start_location],
                           entries_before_wrap * sizeof(TransactionId));
-               memcpy(buffer + entries_before_wrap, SnapArray->buffer,
+               memcpy(buffer + entries_before_wrap, (void *) SnapArray->buffer,
                           (nxids - entries_before_wrap) * sizeof(TransactionId));
        }
 }
@@ -1479,7 +1479,7 @@ SnapArrayWriteData(uint64 write_location, uint32 nitems, TransactionId *item)
 {
        write_location %= SnapArray->ring_buffer_size;
        if (write_location + nitems <= SnapArray->ring_buffer_size)
-               memcpy(&SnapArray->buffer[write_location], item,
+               memcpy((void *) &SnapArray->buffer[write_location], item,
                           nitems * sizeof(TransactionId));
        else
        {
@@ -1493,9 +1493,9 @@ SnapArrayWriteData(uint64 write_location, uint32 nitems, TransactionId *item)
                Assert(nitems <= SnapArray->ring_buffer_size);
 
                entries_before_wrap = SnapArray->ring_buffer_size - write_location;
-               memcpy(&SnapArray->buffer[write_location], item,
+               memcpy((void *) &SnapArray->buffer[write_location], item,
                           entries_before_wrap * sizeof(TransactionId));
-               memcpy(SnapArray->buffer, item + entries_before_wrap,
+               memcpy((void *) SnapArray->buffer, item + entries_before_wrap,
                           (nitems - entries_before_wrap) * sizeof(TransactionId));
        }
 }