Add missing SpinRelease() to a couple of error exits --- bug found while

testing concurrent VACUUMs.
This commit is contained in:
Tom Lane 1999-11-28 01:56:48 +00:00
parent 4dded12faa
commit b982c3b683
1 changed files with 3 additions and 6 deletions

View File

@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.62 1999/09/18 19:07:38 tgl Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.63 1999/11/28 01:56:48 tgl Exp $
*
* NOTES
* Outside modules can create a lock table and acquire/release
@ -595,6 +595,7 @@ LockAcquire(LOCKMETHOD lockmethod, LOCKTAG *locktag, LOCKMODE lockmode)
HASH_ENTER, &found);
if (!result)
{
SpinRelease(masterLock);
elog(NOTICE, "LockAcquire: xid table corrupted");
return FALSE;
}
@ -738,6 +739,7 @@ LockAcquire(LOCKMETHOD lockmethod, LOCKTAG *locktag, LOCKMODE lockmode)
XID_PRINT_AUX("LockAcquire: INCONSISTENT ", result);
LOCK_PRINT_AUX("LockAcquire: INCONSISTENT ", lock, lockmode);
/* Should we retry ? */
SpinRelease(masterLock);
return FALSE;
}
XID_PRINT("LockAcquire: granted", result);
@ -2000,8 +2002,6 @@ DumpLocks()
XIDLookupEnt *xidLook = NULL;
XIDLookupEnt *tmp = NULL;
SHMEM_OFFSET end;
SPINLOCK masterLock;
int numLockModes;
LOCK *lock;
int count = 0;
int lockmethod = DEFAULT_LOCKMETHOD;
@ -2020,9 +2020,6 @@ DumpLocks()
if (!lockMethodTable)
return;
numLockModes = lockMethodTable->ctl->numLockModes;
masterLock = lockMethodTable->ctl->masterLock;
if (SHMQueueEmpty(lockQueue))
return;