ensure dagreaders are cleaned up after 'cat' command finishes
Jeromy committed
Feb 2, 2015 at 04:23 UTC
061a8663067ca90c5de758633ee5d63bbdd16de3
1 file changed
+4
-5
core/commands/cat.go
+4
-5
@@ -8,6 +8,7 @@ import (
8
path "github.com/jbenet/go-ipfs/path"
9
uio "github.com/jbenet/go-ipfs/unixfs/io"
10
11
+ context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
12
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/cheggaaa/pb"
13
)
14
@@ -32,9 +33,7 @@ it contains.
33
return
34
}
35
35
- readers := make([]io.Reader, 0, len(req.Arguments()))
36
-
37
- readers, length, err := cat(node, req.Arguments())
36
+ readers, length, err := cat(req.Context().Context, node, req.Arguments())
37
if err != nil {
38
res.SetError(err, cmds.ErrNormal)
39
return
@@ -59,7 +58,7 @@ it contains.
58
},
59
}
60
62
-func cat(node *core.IpfsNode, paths []string) ([]io.Reader, uint64, error) {
61
+func cat(ctx context.Context, node *core.IpfsNode, paths []string) ([]io.Reader, uint64, error) {
62
readers := make([]io.Reader, 0, len(paths))
63
length := uint64(0)
64
for _, fpath := range paths {
@@ -68,7 +67,7 @@ func cat(node *core.IpfsNode, paths []string) ([]io.Reader, uint64, error) {
67
return nil, 0, err
68
}
69
71
- read, err := uio.NewDagReader(node.Context(), dagnode, node.DAG)
70
+ read, err := uio.NewDagReader(ctx, dagnode, node.DAG)
71
if err != nil {
72
return nil, 0, err
73
}