Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 584f818

Browse files
committed
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.
1 parent 53016fa commit 584f818

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/backend/storage/lmgr/lwlock.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* Portions Copyright (c) 1994, Regents of the University of California
1616
*
1717
* IDENTIFICATION
18-
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lwlock.c,v 1.3 2001/11/05 17:46:28 momjian Exp $
18+
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lwlock.c,v 1.4 2001/12/10 21:13:50 tgl Exp $
1919
*
2020
*-------------------------------------------------------------------------
2121
*/
@@ -185,7 +185,7 @@ LWLockAssign(void)
185185
void
186186
LWLockAcquire(LWLockId lockid, LWLockMode mode)
187187
{
188-
LWLock *lock = LWLockArray + lockid;
188+
volatile LWLock *lock = LWLockArray + lockid;
189189
bool mustwait;
190190

191191
PRINT_LWDEBUG("LWLockAcquire", lockid, lock);
@@ -303,7 +303,7 @@ LWLockAcquire(LWLockId lockid, LWLockMode mode)
303303
bool
304304
LWLockConditionalAcquire(LWLockId lockid, LWLockMode mode)
305305
{
306-
LWLock *lock = LWLockArray + lockid;
306+
volatile LWLock *lock = LWLockArray + lockid;
307307
bool mustwait;
308308

309309
PRINT_LWDEBUG("LWLockConditionalAcquire", lockid, lock);
@@ -369,7 +369,7 @@ LWLockConditionalAcquire(LWLockId lockid, LWLockMode mode)
369369
void
370370
LWLockRelease(LWLockId lockid)
371371
{
372-
LWLock *lock = LWLockArray + lockid;
372+
volatile LWLock *lock = LWLockArray + lockid;
373373
PROC *head;
374374
PROC *proc;
375375
int i;

0 commit comments

Comments
 (0)