Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
5e6528ad
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
5e6528ad
编写于
8月 01, 2002
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
* -Remove LockMethodTable.prio field, not used (Bruce)
上级
7dfc7e9e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
9 addition
and
39 deletion
+9
-39
src/backend/storage/lmgr/lmgr.c
src/backend/storage/lmgr/lmgr.c
+4
-24
src/backend/storage/lmgr/lock.c
src/backend/storage/lmgr/lock.c
+3
-8
src/include/storage/lock.h
src/include/storage/lock.h
+2
-7
未找到文件。
src/backend/storage/lmgr/lmgr.c
浏览文件 @
5e6528ad
...
...
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lmgr.c,v 1.5
3 2002/06/20 20:29:35
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lmgr.c,v 1.5
4 2002/08/01 05:18:33
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -65,31 +65,11 @@ static LOCKMASK LockConflicts[] = {
};
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
)
...
...
@@ -97,8 +77,8 @@ InitLockTable(int maxBackends)
int
lockmethod
;
lockmethod
=
LockMethodTableInit
(
"LockTable"
,
LockConflicts
,
LockPrios
,
MAX_LOCKMODES
-
1
,
maxBackends
);
LockConflicts
,
MAX_LOCKMODES
-
1
,
maxBackends
);
LockTableId
=
lockmethod
;
if
(
!
(
LockTableId
))
...
...
src/backend/storage/lmgr/lock.c
浏览文件 @
5e6528ad
...
...
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.11
0 2002/07/19 00:17:40
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.11
1 2002/08/01 05:18:33
momjian Exp $
*
* NOTES
* Outside modules can create a lock table and acquire/release
...
...
@@ -208,18 +208,14 @@ GetLocksMethodTable(LOCK *lock)
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
;
}
}
/*
...
...
@@ -234,7 +230,6 @@ LockMethodInit(LOCKMETHODTABLE *lockMethodTable,
LOCKMETHOD
LockMethodTableInit
(
char
*
tabName
,
LOCKMASK
*
conflictsP
,
int
*
prioP
,
int
numModes
,
int
maxBackends
)
{
...
...
@@ -335,7 +330,7 @@ LockMethodTableInit(char *tabName,
elog
(
FATAL
,
"LockMethodTableInit: couldn't initialize %s"
,
tabName
);
/* init data structures */
LockMethodInit
(
lockMethodTable
,
conflictsP
,
prioP
,
numModes
);
LockMethodInit
(
lockMethodTable
,
conflictsP
,
numModes
);
LWLockRelease
(
LockMgrLock
);
...
...
src/include/storage/lock.h
浏览文件 @
5e6528ad
...
...
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* $Id: lock.h,v 1.6
3 2002/07/19 00:17:40
momjian Exp $
* $Id: lock.h,v 1.6
4 2002/08/01 05:18:34
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -80,10 +80,6 @@ typedef int LOCKMETHOD;
* 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
*
*/
...
...
@@ -94,7 +90,6 @@ typedef struct LOCKMETHODTABLE
LOCKMETHOD
lockmethod
;
int
numLockModes
;
int
conflictTab
[
MAX_LOCKMODES
];
int
prio
[
MAX_LOCKMODES
];
LWLockId
masterLock
;
}
LOCKMETHODTABLE
;
...
...
@@ -215,7 +210,7 @@ typedef struct PROCLOCK
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
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录