Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
dms3
go-dms3
Commits
15d4f829
Commit
15d4f829
authored
Nov 21, 2014
by
Jeromy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
some cleanup, and fix minor bug in dagreader from previous commit
parent
d53deeba
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
18 additions
and
14 deletions
+18
-14
blockservice/blockservice.go
blockservice/blockservice.go
+3
-0
merkledag/merkledag.go
merkledag/merkledag.go
+2
-8
unixfs/io/dagreader.go
unixfs/io/dagreader.go
+13
-6
No files found.
blockservice/blockservice.go
View file @
15d4f829
...
...
@@ -95,6 +95,9 @@ func (s *BlockService) GetBlock(ctx context.Context, k u.Key) (*blocks.Block, er
}
}
// GetBlocks gets a list of blocks asynchronously and returns through
// the returned channel.
// NB: No guarantees are made about order.
func
(
s
*
BlockService
)
GetBlocks
(
ctx
context
.
Context
,
ks
[]
u
.
Key
)
<-
chan
*
blocks
.
Block
{
out
:=
make
(
chan
*
blocks
.
Block
,
32
)
go
func
()
{
...
...
merkledag/merkledag.go
View file @
15d4f829
...
...
@@ -288,9 +288,8 @@ func FetchGraph(ctx context.Context, root *Node, serv DAGService) chan struct{}
}
// BatchFetch will fill out all of the links of the given Node.
// It returns a channel of indicies, which will be returned in order
// from 0 to len(root.Links) - 1, signalling that the link specified by
// the index has been filled out.
// It returns a channel of nodes, which the caller can receive
// all the child nodes of 'root' on, in proper order.
func
(
ds
*
dagService
)
BatchFetch
(
ctx
context
.
Context
,
root
*
Node
)
<-
chan
*
Node
{
sig
:=
make
(
chan
*
Node
)
go
func
()
{
...
...
@@ -299,7 +298,6 @@ func (ds *dagService) BatchFetch(ctx context.Context, root *Node) <-chan *Node {
//
next
:=
0
seen
:=
make
(
map
[
int
]
struct
{})
//
for
_
,
lnk
:=
range
root
.
Links
{
...
...
@@ -314,10 +312,6 @@ func (ds *dagService) BatchFetch(ctx context.Context, root *Node) <-chan *Node {
continue
}
//
seen
[
i
]
=
struct
{}{}
//
nd
,
err
:=
Decoded
(
blk
.
Data
)
if
err
!=
nil
{
log
.
Error
(
"Got back bad block!"
)
...
...
unixfs/io/dagreader.go
View file @
15d4f829
...
...
@@ -61,12 +61,8 @@ func NewDagReader(n *mdag.Node, serv mdag.DAGService) (io.Reader, error) {
func
(
dr
*
DagReader
)
precalcNextBuf
()
error
{
var
nxt
*
mdag
.
Node
var
ok
bool
select
{
case
nxt
,
ok
=
<-
dr
.
fetchChan
:
if
!
ok
{
return
io
.
EOF
}
default
:
if
dr
.
serv
==
nil
{
// Only used when fetchChan is nil,
// which only happens when passed in a nil dagservice
// TODO: this logic is hard to follow, do it better.
...
...
@@ -76,7 +72,18 @@ func (dr *DagReader) precalcNextBuf() error {
return
io
.
EOF
}
nxt
=
dr
.
node
.
Links
[
dr
.
linkPosition
]
.
Node
if
nxt
==
nil
{
return
errors
.
New
(
"Got nil node back from link! and no DAGService!"
)
}
dr
.
linkPosition
++
}
else
{
select
{
case
nxt
,
ok
=
<-
dr
.
fetchChan
:
if
!
ok
{
return
io
.
EOF
}
}
}
pb
:=
new
(
ftpb
.
Data
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment