summaryrefslogtreecommitdiff
path: root/src/backend/storage/ipc
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2015-10-16 14:12:20 -0400
committerRobert Haas <rhaas@postgresql.org>2015-10-16 14:14:15 -0400
commit430008b5a7ac395ab3057377104148e80718045c (patch)
treece5a886df7a02f821aa773ddbb11fa6848dae980 /src/backend/storage/ipc
parent78652a3332128c89ae369e03698f7212ca73d022 (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.c11
-rw-r--r--src/backend/storage/ipc/sinvaladt.c22
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)
{