summaryrefslogtreecommitdiff
path: root/src/backend/storage/lmgr/lock.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/storage/lmgr/lock.c')
-rw-r--r--src/backend/storage/lmgr/lock.c50
1 files changed, 20 insertions, 30 deletions
diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c
index 84204411fa..8c569710d0 100644
--- a/src/backend/storage/lmgr/lock.c
+++ b/src/backend/storage/lmgr/lock.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.99 2001/10/01 05:36:14 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.100 2001/10/05 17:28:12 tgl Exp $
*
* NOTES
* Outside modules can create a lock table and acquire/release
@@ -491,7 +491,8 @@ LockAcquire(LOCKMETHOD lockmethod, LOCKTAG *locktag,
if (!lock)
{
LWLockRelease(masterLock);
- elog(FATAL, "LockAcquire: lock table %d is corrupted", lockmethod);
+ elog(ERROR, "LockAcquire: lock table %d is out of memory",
+ lockmethod);
return FALSE;
}
@@ -537,7 +538,7 @@ LockAcquire(LOCKMETHOD lockmethod, LOCKTAG *locktag,
if (!holder)
{
LWLockRelease(masterLock);
- elog(FATAL, "LockAcquire: holder table corrupted");
+ elog(ERROR, "LockAcquire: holder table out of memory");
return FALSE;
}
@@ -658,8 +659,8 @@ LockAcquire(LOCKMETHOD lockmethod, LOCKTAG *locktag,
SHMQueueDelete(&holder->procLink);
holder = (HOLDER *) hash_search(holderTable,
(void *) holder,
- HASH_REMOVE, &found);
- if (!holder || !found)
+ HASH_REMOVE, NULL);
+ if (!holder)
elog(NOTICE, "LockAcquire: remove holder, table corrupted");
}
else
@@ -991,7 +992,6 @@ LockRelease(LOCKMETHOD lockmethod, LOCKTAG *locktag,
{
LOCK *lock;
LWLockId masterLock;
- bool found;
LOCKMETHODTABLE *lockMethodTable;
HOLDER *holder;
HOLDERTAG holdertag;
@@ -1023,7 +1023,7 @@ LockRelease(LOCKMETHOD lockmethod, LOCKTAG *locktag,
Assert(lockMethodTable->lockHash->hash == tag_hash);
lock = (LOCK *) hash_search(lockMethodTable->lockHash,
(void *) locktag,
- HASH_FIND, &found);
+ HASH_FIND, NULL);
/*
* let the caller print its own error message, too. Do not
@@ -1032,13 +1032,6 @@ LockRelease(LOCKMETHOD lockmethod, LOCKTAG *locktag,
if (!lock)
{
LWLockRelease(masterLock);
- elog(NOTICE, "LockRelease: locktable corrupted");
- return FALSE;
- }
-
- if (!found)
- {
- LWLockRelease(masterLock);
elog(NOTICE, "LockRelease: no such lock");
return FALSE;
}
@@ -1056,12 +1049,12 @@ LockRelease(LOCKMETHOD lockmethod, LOCKTAG *locktag,
holderTable = lockMethodTable->holderHash;
holder = (HOLDER *) hash_search(holderTable,
(void *) &holdertag,
- HASH_FIND_SAVE, &found);
- if (!holder || !found)
+ HASH_FIND_SAVE, NULL);
+ if (!holder)
{
LWLockRelease(masterLock);
#ifdef USER_LOCKS
- if (!found && lockmethod == USER_LOCKMETHOD)
+ if (lockmethod == USER_LOCKMETHOD)
elog(NOTICE, "LockRelease: no lock with this tag");
else
#endif
@@ -1130,8 +1123,8 @@ LockRelease(LOCKMETHOD lockmethod, LOCKTAG *locktag,
lock = (LOCK *) hash_search(lockMethodTable->lockHash,
(void *) &(lock->tag),
HASH_REMOVE,
- &found);
- if (!lock || !found)
+ NULL);
+ if (!lock)
{
LWLockRelease(masterLock);
elog(NOTICE, "LockRelease: remove lock, table corrupted");
@@ -1159,8 +1152,8 @@ LockRelease(LOCKMETHOD lockmethod, LOCKTAG *locktag,
SHMQueueDelete(&holder->procLink);
holder = (HOLDER *) hash_search(holderTable,
(void *) &holder,
- HASH_REMOVE_SAVED, &found);
- if (!holder || !found)
+ HASH_REMOVE_SAVED, NULL);
+ if (!holder)
{
LWLockRelease(masterLock);
elog(NOTICE, "LockRelease: remove holder, table corrupted");
@@ -1201,7 +1194,6 @@ LockReleaseAll(LOCKMETHOD lockmethod, PROC *proc,
int i,
numLockModes;
LOCK *lock;
- bool found;
#ifdef LOCK_DEBUG
if (lockmethod == USER_LOCKMETHOD ? Trace_userlocks : Trace_locks)
@@ -1313,8 +1305,8 @@ LockReleaseAll(LOCKMETHOD lockmethod, PROC *proc,
holder = (HOLDER *) hash_search(lockMethodTable->holderHash,
(void *) holder,
HASH_REMOVE,
- &found);
- if (!holder || !found)
+ NULL);
+ if (!holder)
{
LWLockRelease(masterLock);
elog(NOTICE, "LockReleaseAll: holder table corrupted");
@@ -1323,7 +1315,6 @@ LockReleaseAll(LOCKMETHOD lockmethod, PROC *proc,
if (lock->nRequested == 0)
{
-
/*
* We've just released the last lock, so garbage-collect the
* lock object.
@@ -1332,8 +1323,8 @@ LockReleaseAll(LOCKMETHOD lockmethod, PROC *proc,
Assert(lockMethodTable->lockHash->hash == tag_hash);
lock = (LOCK *) hash_search(lockMethodTable->lockHash,
(void *) &(lock->tag),
- HASH_REMOVE, &found);
- if (!lock || !found)
+ HASH_REMOVE, NULL);
+ if (!lock)
{
LWLockRelease(masterLock);
elog(NOTICE, "LockReleaseAll: cannot remove lock from HTAB");
@@ -1438,7 +1429,7 @@ void
DumpAllLocks(void)
{
PROC *proc;
- HOLDER *holder = NULL;
+ HOLDER *holder;
LOCK *lock;
int lockmethod = DEFAULT_LOCKMETHOD;
LOCKMETHODTABLE *lockMethodTable;
@@ -1460,8 +1451,7 @@ DumpAllLocks(void)
LOCK_PRINT("DumpAllLocks: waiting on", proc->waitLock, 0);
hash_seq_init(&status, holderTable);
- while ((holder = (HOLDER *) hash_seq_search(&status)) &&
- (holder != (HOLDER *) TRUE))
+ while ((holder = (HOLDER *) hash_seq_search(&status)) != NULL)
{
HOLDER_PRINT("DumpAllLocks", holder);