diff --git a/src/backend/storage/ipc/shmem.c b/src/backend/storage/ipc/shmem.c index 250e312..78f15f0 100644 --- a/src/backend/storage/ipc/shmem.c +++ b/src/backend/storage/ipc/shmem.c @@ -170,29 +170,26 @@ ShmemAlloc(Size size) Size newFree; void *newSpace; - /* use volatile pointer to prevent code rearrangement */ - volatile PGShmemHeader *shmemseghdr = ShmemSegHdr; - /* * ensure all space is adequately aligned. */ size = MAXALIGN(size); - Assert(shmemseghdr != NULL); + Assert(ShmemSegHdr != NULL); SpinLockAcquire(ShmemLock); - newStart = shmemseghdr->freeoffset; + newStart = ShmemSegHdr->freeoffset; /* extra alignment for large requests, since they are probably buffers */ if (size >= BLCKSZ) newStart = BUFFERALIGN(newStart); newFree = newStart + size; - if (newFree <= shmemseghdr->totalsize) + if (newFree <= ShmemSegHdr->totalsize) { newSpace = (void *) ((char *) ShmemBase + newStart); - shmemseghdr->freeoffset = newFree; + ShmemSegHdr->freeoffset = newFree; } else newSpace = NULL; diff --git a/src/backend/storage/ipc/sinvaladt.c b/src/backend/storage/ipc/sinvaladt.c index a2fde89..3cc15e0 100644 --- a/src/backend/storage/ipc/sinvaladt.c +++ b/src/backend/storage/ipc/sinvaladt.c @@ -485,14 +485,9 @@ SIInsertDataEntries(const SharedInvalidationMessage *data, int n) } /* Update current value of maxMsgNum using spinlock */ - { - /* use volatile pointer to prevent code rearrangement */ - volatile SISeg *vsegP = segP; - - SpinLockAcquire(&vsegP->msgnumLock); - vsegP->maxMsgNum = max; - SpinLockRelease(&vsegP->msgnumLock); - } + SpinLockAcquire(&segP->msgnumLock); + segP->maxMsgNum = max; + SpinLockRelease(&segP->msgnumLock); /* * Now that the maxMsgNum change is globally visible, we give everyone @@ -579,14 +574,9 @@ SIGetDataEntries(SharedInvalidationMessage *data, int datasize) stateP->hasMessages = false; /* Fetch current value of maxMsgNum using spinlock */ - { - /* use volatile pointer to prevent code rearrangement */ - volatile SISeg *vsegP = segP; - - SpinLockAcquire(&vsegP->msgnumLock); - max = vsegP->maxMsgNum; - SpinLockRelease(&vsegP->msgnumLock); - } + SpinLockAcquire(&segP->msgnumLock); + max = segP->maxMsgNum; + SpinLockRelease(&segP->msgnumLock); if (stateP->resetState) {