Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
3cd3be92
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,发现更多精彩内容 >>
提交
3cd3be92
编写于
12月 18, 1998
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix deadlock so it only checks once.
上级
bb76dd85
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
22 addition
and
23 deletion
+22
-23
src/backend/parser/scan.c
src/backend/parser/scan.c
+2
-2
src/backend/storage/lmgr/proc.c
src/backend/storage/lmgr/proc.c
+18
-19
src/pl/plpgsql/src/gram.c
src/pl/plpgsql/src/gram.c
+1
-1
src/pl/plpgsql/src/scan.c
src/pl/plpgsql/src/scan.c
+1
-1
未找到文件。
src/backend/parser/scan.c
浏览文件 @
3cd3be92
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
*
$Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.31 1998/10/13 17:26:50 scrappy Exp $
*
/master/usr.bin/lex/skel.c,v 1.3 1997/09/25 00:10:23 jch Exp
*/
#define FLEX_SCANNER
...
...
@@ -556,7 +556,7 @@ char *yytext;
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.3
1 1998/10/13 17:26:50 scrappy
Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.3
2 1998/12/18 19:45:36 momjian
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
src/backend/storage/lmgr/proc.c
浏览文件 @
3cd3be92
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.4
3 1998/09/01 04:32:02
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.4
4 1998/12/18 19:45:37
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -46,7 +46,7 @@
* This is so that we can support more backends. (system-wide semaphore
* sets run out pretty fast.) -ay 4/95
*
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.4
3 1998/09/01 04:32:02
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.4
4 1998/12/18 19:45:37
momjian Exp $
*/
#include <sys/time.h>
#include <unistd.h>
...
...
@@ -77,7 +77,7 @@
#include "storage/proc.h"
#include "utils/trace.h"
static
void
HandleDeadLock
(
int
sig
);
static
void
HandleDeadLock
(
void
);
static
PROC
*
ProcWakeup
(
PROC
*
proc
,
int
errType
);
#define DeadlockCheckTimer pg_options[OPT_DEADLOCKTIMEOUT]
...
...
@@ -154,8 +154,6 @@ InitProcess(IPCKey key)
* Routine called if deadlock timer goes off. See ProcSleep()
* ------------------
*/
pqsignal
(
SIGALRM
,
HandleDeadLock
);
SpinAcquire
(
ProcStructLock
);
/* attach to the free list */
...
...
@@ -449,9 +447,9 @@ ProcSleep(PROC_QUEUE *waitQueue,/* lock->waitProcs */
TransactionId
xid
)
/* needed by user locks, see below */
{
int
i
;
bool
deadlock_checked
=
false
;
PROC
*
proc
;
struct
itimerval
timeval
,
dummy
;
struct
timeval
timeval
;
/*
* If the first entries in the waitQueue have a greater priority than
...
...
@@ -523,17 +521,26 @@ ProcSleep(PROC_QUEUE *waitQueue,/* lock->waitProcs */
* to 0.
* --------------
*/
MemSet
(
&
timeval
,
0
,
sizeof
(
struct
itimer
val
));
timeval
.
it_value
.
tv_sec
=
\
MemSet
(
&
timeval
,
0
,
sizeof
(
struct
time
val
));
timeval
.
tv_sec
=
\
(
DeadlockCheckTimer
?
DeadlockCheckTimer
:
DEADLOCK_CHECK_TIMER
);
do
{
int
expire
;
MyProc
->
errType
=
NO_ERROR
;
/* reset flag after deadlock check */
if
(
setitimer
(
ITIMER_REAL
,
&
timeval
,
&
dummy
))
if
((
expire
=
select
(
0
,
NULL
,
NULL
,
NULL
,
(
deadlock_checked
==
false
)
?
&
timeval
:
NULL
))
==
-
1
)
elog
(
FATAL
,
"ProcSleep: Unable to set timer for process wakeup"
);
if
(
expire
==
0
/* timeout reached */
&&
deadlock_checked
==
false
)
{
HandleDeadLock
();
deadlock_checked
=
true
;
}
/* --------------
* if someone wakes us between SpinRelease and IpcSemaphoreLock,
* IpcSemaphoreLock will not block. The wakeup is "saved" by
...
...
@@ -545,14 +552,6 @@ ProcSleep(PROC_QUEUE *waitQueue,/* lock->waitProcs */
}
while
(
MyProc
->
errType
==
STATUS_NOT_FOUND
);
/* sleep after deadlock
* check */
/* ---------------
* We were awoken before a timeout - now disable the timer
* ---------------
*/
timeval
.
it_value
.
tv_sec
=
0
;
if
(
setitimer
(
ITIMER_REAL
,
&
timeval
,
&
dummy
))
elog
(
FATAL
,
"ProcSleep: Unable to diable timer for process wakeup"
);
/* ----------------
* We were assumed to be in a critical section when we went
* to sleep.
...
...
@@ -695,7 +694,7 @@ ProcAddLock(SHM_QUEUE *elem)
* --------------------
*/
static
void
HandleDeadLock
(
int
sig
)
HandleDeadLock
()
{
LOCK
*
mywaitlock
;
...
...
src/pl/plpgsql/src/gram.c
浏览文件 @
3cd3be92
...
...
@@ -65,7 +65,7 @@
* procedural language
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/Attic/gram.c,v 1.
1 1998/10/28 17:07:17
momjian Exp $
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/Attic/gram.c,v 1.
2 1998/12/18 19:45:38
momjian Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
...
...
src/pl/plpgsql/src/scan.c
浏览文件 @
3cd3be92
...
...
@@ -635,7 +635,7 @@ char *yytext_ptr;
* procedural language
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/Attic/scan.c,v 1.
1 1998/10/28 17:07:17
momjian Exp $
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/Attic/scan.c,v 1.
2 1998/12/18 19:45:38
momjian Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录