From 584f818bef68450d23d1b75afbaf19febe38fd37 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Mon, 10 Dec 2001 21:13:50 +0000
Subject: [PATCH] Declare LWLock pointers as volatile to prevent AIX compiler
 from reordering operations at its whim.  Releasing TAS lock before we've
 finished updating proc structure is uncool.

---
 src/backend/storage/lmgr/lwlock.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/backend/storage/lmgr/lwlock.c b/src/backend/storage/lmgr/lwlock.c
index 3c90f108695..00fae5438e0 100644
--- a/src/backend/storage/lmgr/lwlock.c
+++ b/src/backend/storage/lmgr/lwlock.c
@@ -15,7 +15,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lwlock.c,v 1.3 2001/11/05 17:46:28 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lwlock.c,v 1.4 2001/12/10 21:13:50 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -185,7 +185,7 @@ LWLockAssign(void)
 void
 LWLockAcquire(LWLockId lockid, LWLockMode mode)
 {
-	LWLock	   *lock = LWLockArray + lockid;
+	volatile LWLock *lock = LWLockArray + lockid;
 	bool		mustwait;
 
 	PRINT_LWDEBUG("LWLockAcquire", lockid, lock);
@@ -303,7 +303,7 @@ LWLockAcquire(LWLockId lockid, LWLockMode mode)
 bool
 LWLockConditionalAcquire(LWLockId lockid, LWLockMode mode)
 {
-	LWLock	   *lock = LWLockArray + lockid;
+	volatile LWLock *lock = LWLockArray + lockid;
 	bool		mustwait;
 
 	PRINT_LWDEBUG("LWLockConditionalAcquire", lockid, lock);
@@ -369,7 +369,7 @@ LWLockConditionalAcquire(LWLockId lockid, LWLockMode mode)
 void
 LWLockRelease(LWLockId lockid)
 {
-	LWLock	   *lock = LWLockArray + lockid;
+	volatile LWLock *lock = LWLockArray + lockid;
 	PROC	   *head;
 	PROC	   *proc;
 	int			i;
-- 
GitLab