*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lmgr.c,v 1.53 2002/06/20 20:29:35 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lmgr.c,v 1.54 2002/08/01 05:18:33 momjian Exp $
*
*-------------------------------------------------------------------------
*/
};
-static int LockPrios[] = {
- 0,
- /* AccessShareLock */
- 1,
- /* RowShareLock */
- 2,
- /* RowExclusiveLock */
- 3,
- /* ShareUpdateExclusiveLock */
- 4,
- /* ShareLock */
- 5,
- /* ShareRowExclusiveLock */
- 6,
- /* ExclusiveLock */
- 7,
- /* AccessExclusiveLock */
- 8
-};
-
LOCKMETHOD LockTableId = (LOCKMETHOD) NULL;
LOCKMETHOD LongTermTableId = (LOCKMETHOD) NULL;
/*
- * Create the lock table described by LockConflicts and LockPrios.
+ * Create the lock table described by LockConflicts
*/
LOCKMETHOD
InitLockTable(int maxBackends)
int lockmethod;
lockmethod = LockMethodTableInit("LockTable",
- LockConflicts, LockPrios,
- MAX_LOCKMODES - 1, maxBackends);
+ LockConflicts, MAX_LOCKMODES - 1,
+ maxBackends);
LockTableId = lockmethod;
if (!(LockTableId))
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.110 2002/07/19 00:17:40 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.111 2002/08/01 05:18:33 momjian Exp $
*
* NOTES
* Outside modules can create a lock table and acquire/release
static void
LockMethodInit(LOCKMETHODTABLE *lockMethodTable,
LOCKMASK *conflictsP,
- int *prioP,
int numModes)
{
int i;
lockMethodTable->numLockModes = numModes;
numModes++;
- for (i = 0; i < numModes; i++, prioP++, conflictsP++)
- {
+ for (i = 0; i < numModes; i++, conflictsP++)
lockMethodTable->conflictTab[i] = *conflictsP;
- lockMethodTable->prio[i] = *prioP;
- }
}
/*
LOCKMETHOD
LockMethodTableInit(char *tabName,
LOCKMASK *conflictsP,
- int *prioP,
int numModes,
int maxBackends)
{
elog(FATAL, "LockMethodTableInit: couldn't initialize %s", tabName);
/* init data structures */
- LockMethodInit(lockMethodTable, conflictsP, prioP, numModes);
+ LockMethodInit(lockMethodTable, conflictsP, numModes);
LWLockRelease(LockMgrLock);
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: lock.h,v 1.63 2002/07/19 00:17:40 momjian Exp $
+ * $Id: lock.h,v 1.64 2002/08/01 05:18:34 momjian Exp $
*
*-------------------------------------------------------------------------
*/
* type conflicts. conflictTab[i] is a mask with the j-th bit
* turned on if lock types i and j conflict.
*
- * prio -- each lockmode has a priority, so, for example, waiting
- * writers can be given priority over readers (to avoid
- * starvation). XXX this field is not actually used at present!
- *
* masterLock -- synchronizes access to the table
*
*/
LOCKMETHOD lockmethod;
int numLockModes;
int conflictTab[MAX_LOCKMODES];
- int prio[MAX_LOCKMODES];
LWLockId masterLock;
} LOCKMETHODTABLE;
extern void InitLocks(void);
extern LOCKMETHODTABLE *GetLocksMethodTable(LOCK *lock);
extern LOCKMETHOD LockMethodTableInit(char *tabName, LOCKMASK *conflictsP,
- int *prioP, int numModes, int maxBackends);
+ int numModes, int maxBackends);
extern LOCKMETHOD LockMethodTableRename(LOCKMETHOD lockmethod);
extern bool LockAcquire(LOCKMETHOD lockmethod, LOCKTAG *locktag,
TransactionId xid, LOCKMODE lockmode, bool dontWait);