Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xindoo
redis
提交
e37efb0d
R
redis
项目概览
xindoo
/
redis
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e37efb0d
编写于
1月 02, 2011
作者:
A
antirez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
diskstore race condition fixed
上级
133cf28e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
0 deletion
+24
-0
src/dscache.c
src/dscache.c
+24
-0
未找到文件。
src/dscache.c
浏览文件 @
e37efb0d
...
...
@@ -596,6 +596,11 @@ void cacheScheduleIOAddFlag(redisDb *db, robj *key, long flag) {
return
;
}
else
{
long
flags
=
(
long
)
dictGetEntryVal
(
de
);
if
(
flags
&
flag
)
{
redisLog
(
REDIS_WARNING
,
"Adding the same flag again: was: %ld, addede: %ld"
,
flags
,
flag
);
redisAssert
(
!
(
flags
&
flag
));
}
flags
|=
flag
;
dictGetEntryVal
(
de
)
=
(
void
*
)
flags
;
}
...
...
@@ -662,6 +667,8 @@ void cacheCron(void) {
topush
=
100
-
jobs
;
if
(
topush
<
0
)
topush
=
0
;
if
(
topush
>
(
signed
)
listLength
(
server
.
cache_io_queue
))
topush
=
listLength
(
server
.
cache_io_queue
);
while
((
ln
=
listFirst
(
server
.
cache_io_queue
))
!=
NULL
)
{
ioop
*
op
=
ln
->
value
;
...
...
@@ -675,6 +682,23 @@ void cacheCron(void) {
struct
dictEntry
*
de
;
robj
*
val
;
/* Don't add a SAVE job in queue if there is already
* a save in progress for the same key. */
if
(
op
->
type
==
REDIS_IO_SAVE
&&
cacheScheduleIOGetFlags
(
op
->
db
,
op
->
key
)
&
REDIS_IO_SAVEINPROG
)
{
/* Move the operation at the end of the list of there
* are other operations. Otherwise break, nothing to do
* here. */
if
(
listLength
(
server
.
cache_io_queue
)
>
1
)
{
listDelNode
(
server
.
cache_io_queue
,
ln
);
listAddNodeTail
(
server
.
cache_io_queue
,
op
);
continue
;
}
else
{
break
;
}
}
redisLog
(
REDIS_DEBUG
,
"Creating IO %s Job for key %s"
,
op
->
type
==
REDIS_IO_LOAD
?
"load"
:
"save"
,
op
->
key
->
ptr
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录