Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
1f820dc2
提交
1f820dc2
authored
10月 26, 2015
作者:
Mildred Ki'Lya
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
path/resolver.go: Handle timeout here
License: MIT Signed-off-by:
Mildred Ki'Lya
<
mildred-pub.git@mildred.fr
>
上级
5808fe2e
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
13 行增加
和
8 行删除
+13
-8
node.go
merkledag/node.go
+6
-7
resolver.go
path/resolver.go
+7
-1
没有找到文件。
merkledag/node.go
浏览文件 @
1f820dc2
...
...
@@ -2,7 +2,6 @@ package merkledag
import
(
"fmt"
"time"
"gx/ipfs/QmZy2y8t9zQH2a1b8q2ZSLKp17ATuJoCNxxyMFG5qFExpt/go-net/context"
...
...
@@ -77,6 +76,11 @@ func MakeLink(n *Node) (*Link, error) {
},
nil
}
// GetCachedNode returns the MDAG Node that was cached, or nil
func
(
l
*
Link
)
GetCachedNode
()
*
Node
{
return
l
.
Node
}
// GetNode returns the MDAG Node that this link points to
func
(
l
*
Link
)
GetNode
(
ctx
context
.
Context
,
serv
DAGService
)
(
*
Node
,
error
)
{
if
l
.
Node
!=
nil
{
...
...
@@ -89,13 +93,8 @@ func (l *Link) GetNode(ctx context.Context, serv DAGService) (*Node, error) {
// GetNodeAndCache return the MDAG Node that the link points to and store a
// pointer to that node along with the link to speed up further retrivals. A
// timeout is to be specified to avoid taking too much time.
func
(
l
*
Link
)
GetNodeAndCache
(
ctx
context
.
Context
,
serv
DAGService
,
timeout
time
.
Duration
)
(
*
Node
,
error
)
{
func
(
l
*
Link
)
GetNodeAndCache
(
ctx
context
.
Context
,
serv
DAGService
)
(
*
Node
,
error
)
{
if
l
.
Node
==
nil
{
if
timeout
!=
0
{
var
cancel
context
.
CancelFunc
ctx
,
cancel
=
context
.
WithTimeout
(
ctx
,
time
.
Minute
)
defer
cancel
()
}
nd
,
err
:=
serv
.
Get
(
ctx
,
key
.
Key
(
l
.
Hash
))
if
err
!=
nil
{
return
nil
,
err
...
...
path/resolver.go
浏览文件 @
1f820dc2
...
...
@@ -125,8 +125,14 @@ func (s *Resolver) ResolveLinks(ctx context.Context, ndd *merkledag.Node, names
return
result
,
ErrNoLink
{
Name
:
name
,
Node
:
n
}
}
if
nlink
.
GetCachedNode
()
==
nil
{
var
cancel
context
.
CancelFunc
ctx
,
cancel
=
context
.
WithTimeout
(
ctx
,
time
.
Minute
)
defer
cancel
()
}
var
err
error
nd
,
err
=
nlink
.
GetNodeAndCache
(
ctx
,
s
.
DAG
,
time
.
Minute
)
nd
,
err
=
nlink
.
GetNodeAndCache
(
ctx
,
s
.
DAG
)
if
err
!=
nil
{
return
append
(
result
,
nd
),
err
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论