diff options
author | Robert Haas <rhaas@postgresql.org> | 2015-10-16 14:12:20 -0400 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2015-10-16 14:14:15 -0400 |
commit | 430008b5a7ac395ab3057377104148e80718045c (patch) | |
tree | ce5a886df7a02f821aa773ddbb11fa6848dae980 /src/backend/storage/ipc | |
parent | 78652a3332128c89ae369e03698f7212ca73d022 (diff) |
Remove volatile qualifiers from dynahash.c, shmem.c, and sinvaladt.c
Prior to commit 0709b7ee72e4bc71ad07b7120acd117265ab51d0, access to
variables within a spinlock-protected critical section had to be done
through a volatile pointer, but that should no longer be necessary.
Thomas Munro
Diffstat (limited to 'src/backend/storage/ipc')
-rw-r--r-- | src/backend/storage/ipc/shmem.c | 11 | ||||
-rw-r--r-- | src/backend/storage/ipc/sinvaladt.c | 22 |
2 files changed, 10 insertions, 23 deletions
diff --git a/src/backend/storage/ipc/shmem.c b/src/backend/storage/ipc/shmem.c index 250e31255e9..78f15f0b00a 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 a2fde89b526..3cc15e04299 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) { |