mirror of
https://github.com/postgres/postgres.git
synced 2025-11-19 13:42:17 +03:00
Remove volatile qualifiers from proc.c and procarray.c
Prior to commit 0709b7ee72, access to
variables within a spinlock-protected critical section had to be done
through a volatile pointer, but that should no longer be necessary.
Michael Paquier
This commit is contained in:
@@ -3718,8 +3718,6 @@ static int
|
||||
KnownAssignedXidsGetAndSetXmin(TransactionId *xarray, TransactionId *xmin,
|
||||
TransactionId xmax)
|
||||
{
|
||||
/* use volatile pointer to prevent code rearrangement */
|
||||
volatile ProcArrayStruct *pArray = procArray;
|
||||
int count = 0;
|
||||
int head,
|
||||
tail;
|
||||
@@ -3734,10 +3732,10 @@ KnownAssignedXidsGetAndSetXmin(TransactionId *xarray, TransactionId *xmin,
|
||||
*
|
||||
* Must take spinlock to ensure we see up-to-date array contents.
|
||||
*/
|
||||
SpinLockAcquire(&pArray->known_assigned_xids_lck);
|
||||
tail = pArray->tailKnownAssignedXids;
|
||||
head = pArray->headKnownAssignedXids;
|
||||
SpinLockRelease(&pArray->known_assigned_xids_lck);
|
||||
SpinLockAcquire(&procArray->known_assigned_xids_lck);
|
||||
tail = procArray->tailKnownAssignedXids;
|
||||
head = procArray->headKnownAssignedXids;
|
||||
SpinLockRelease(&procArray->known_assigned_xids_lck);
|
||||
|
||||
for (i = tail; i < head; i++)
|
||||
{
|
||||
@@ -3777,8 +3775,6 @@ KnownAssignedXidsGetAndSetXmin(TransactionId *xarray, TransactionId *xmin,
|
||||
static TransactionId
|
||||
KnownAssignedXidsGetOldestXmin(void)
|
||||
{
|
||||
/* use volatile pointer to prevent code rearrangement */
|
||||
volatile ProcArrayStruct *pArray = procArray;
|
||||
int head,
|
||||
tail;
|
||||
int i;
|
||||
@@ -3786,10 +3782,10 @@ KnownAssignedXidsGetOldestXmin(void)
|
||||
/*
|
||||
* Fetch head just once, since it may change while we loop.
|
||||
*/
|
||||
SpinLockAcquire(&pArray->known_assigned_xids_lck);
|
||||
tail = pArray->tailKnownAssignedXids;
|
||||
head = pArray->headKnownAssignedXids;
|
||||
SpinLockRelease(&pArray->known_assigned_xids_lck);
|
||||
SpinLockAcquire(&procArray->known_assigned_xids_lck);
|
||||
tail = procArray->tailKnownAssignedXids;
|
||||
head = procArray->headKnownAssignedXids;
|
||||
SpinLockRelease(&procArray->known_assigned_xids_lck);
|
||||
|
||||
for (i = tail; i < head; i++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user