Declare LWLock pointers as volatile to prevent AIX compiler from
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 10 Dec 2001 21:13:50 +0000 (21:13 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 10 Dec 2001 21:13:50 +0000 (21:13 +0000)
reordering operations at its whim.  Releasing TAS lock before we've
finished updating proc structure is uncool.

src/backend/storage/lmgr/lwlock.c

index 3c90f1086950191b9f5b46e33e5bc4e4b43e558a..00fae5438e01e6807231da73b4339a198d3f588b 100644 (file)
@@ -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;