Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
kvdb
rocksdb
提交
4f18bfe3
R
rocksdb
项目概览
kvdb
/
rocksdb
11 个月 前同步成功
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rocksdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4f18bfe3
编写于
6月 17, 2014
作者:
I
Igor Canadi
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #176 from bgrainger/mutexrw-unlock
Add separate Read/WriteUnlock methods in MutexRW.
上级
e6e259b8
2d02ec65
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
9 addition
and
6 deletion
+9
-6
db/memtable.cc
db/memtable.cc
+1
-1
port/port_posix.cc
port/port_posix.cc
+3
-1
port/port_posix.h
port/port_posix.h
+2
-1
util/mutexlock.h
util/mutexlock.h
+2
-2
util/vectorrep.cc
util/vectorrep.cc
+1
-1
未找到文件。
db/memtable.cc
浏览文件 @
4f18bfe3
...
...
@@ -366,7 +366,7 @@ static bool SaveValue(void* arg, const char* entry) {
s
->
value
->
assign
(
v
.
data
(),
v
.
size
());
}
if
(
s
->
inplace_update_support
)
{
s
->
mem
->
GetLock
(
s
->
key
->
user_key
())
->
Unlock
();
s
->
mem
->
GetLock
(
s
->
key
->
user_key
())
->
Read
Unlock
();
}
*
(
s
->
found_final_value
)
=
true
;
return
false
;
...
...
port/port_posix.cc
浏览文件 @
4f18bfe3
...
...
@@ -99,7 +99,9 @@ void RWMutex::ReadLock() { PthreadCall("read lock", pthread_rwlock_rdlock(&mu_))
void
RWMutex
::
WriteLock
()
{
PthreadCall
(
"write lock"
,
pthread_rwlock_wrlock
(
&
mu_
));
}
void
RWMutex
::
Unlock
()
{
PthreadCall
(
"unlock"
,
pthread_rwlock_unlock
(
&
mu_
));
}
void
RWMutex
::
ReadUnlock
()
{
PthreadCall
(
"read unlock"
,
pthread_rwlock_unlock
(
&
mu_
));
}
void
RWMutex
::
WriteUnlock
()
{
PthreadCall
(
"write unlock"
,
pthread_rwlock_unlock
(
&
mu_
));
}
void
InitOnce
(
OnceType
*
once
,
void
(
*
initializer
)())
{
PthreadCall
(
"once"
,
pthread_once
(
once
,
initializer
));
...
...
port/port_posix.h
浏览文件 @
4f18bfe3
...
...
@@ -120,7 +120,8 @@ class RWMutex {
void
ReadLock
();
void
WriteLock
();
void
Unlock
();
void
ReadUnlock
();
void
WriteUnlock
();
void
AssertHeld
()
{
}
private:
...
...
util/mutexlock.h
浏览文件 @
4f18bfe3
...
...
@@ -46,7 +46,7 @@ class ReadLock {
explicit
ReadLock
(
port
::
RWMutex
*
mu
)
:
mu_
(
mu
)
{
this
->
mu_
->
ReadLock
();
}
~
ReadLock
()
{
this
->
mu_
->
Unlock
();
}
~
ReadLock
()
{
this
->
mu_
->
Read
Unlock
();
}
private:
port
::
RWMutex
*
const
mu_
;
...
...
@@ -66,7 +66,7 @@ class WriteLock {
explicit
WriteLock
(
port
::
RWMutex
*
mu
)
:
mu_
(
mu
)
{
this
->
mu_
->
WriteLock
();
}
~
WriteLock
()
{
this
->
mu_
->
Unlock
();
}
~
WriteLock
()
{
this
->
mu_
->
Write
Unlock
();
}
private:
port
::
RWMutex
*
const
mu_
;
...
...
util/vectorrep.cc
浏览文件 @
4f18bfe3
...
...
@@ -252,7 +252,7 @@ void VectorRep::Get(const LookupKey& k, void* callback_args,
bucket
.
reset
(
new
Bucket
(
*
bucket_
));
// make a copy
}
VectorRep
::
Iterator
iter
(
vector_rep
,
immutable_
?
bucket_
:
bucket
,
compare_
);
rwlock_
.
Unlock
();
rwlock_
.
Read
Unlock
();
for
(
iter
.
Seek
(
k
.
user_key
(),
k
.
memtable_key
().
data
());
iter
.
Valid
()
&&
callback_func
(
callback_args
,
iter
.
key
());
iter
.
Next
())
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录