diff options
author | Robert Haas | 2011-10-27 12:21:10 +0000 |
---|---|---|
committer | Robert Haas | 2011-10-27 12:21:10 +0000 |
commit | 05d78d765e286bbde3d24c5b867a53544cb7698c (patch) | |
tree | cb950a50c314592bf09d48b34ad308de248ef065 | |
parent | a4798f146f4b06ee92f4b857b19c03cb4e188282 (diff) |
volatile-ize.snaparray
-rw-r--r-- | src/backend/storage/ipc/snaparray.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/backend/storage/ipc/snaparray.c b/src/backend/storage/ipc/snaparray.c index 79eec1c586..27aa73375b 100644 --- a/src/backend/storage/ipc/snaparray.c +++ b/src/backend/storage/ipc/snaparray.c @@ -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)); } } |