提交 bb236cf5 作者: Overbool

cmds/refs: use emit directly

License: MIT
Signed-off-by: 's avatarOverbool <overbool.xu@gmail.com>
上级 30c6dd9b
...@@ -102,32 +102,24 @@ NOTE: List all references recursively by using the flag '-r'. ...@@ -102,32 +102,24 @@ NOTE: List all references recursively by using the flag '-r'.
return err return err
} }
out := make(chan interface{}) rw := RefWriter{
res: res,
go func() { DAG: n.DAG,
defer close(out) Ctx: ctx,
Unique: unique,
rw := RefWriter{ PrintFmt: format,
out: out, MaxDepth: maxDepth,
DAG: n.DAG, }
Ctx: ctx,
Unique: unique,
PrintFmt: format,
MaxDepth: maxDepth,
}
for _, o := range objs { for _, o := range objs {
if _, err := rw.WriteRefs(o); err != nil { if _, err := rw.WriteRefs(o); err != nil {
select { if err := res.Emit(&RefWrapper{Err: err.Error()}); err != nil {
case out <- &RefWrapper{Err: err.Error()}: return err
case <-ctx.Done():
}
return
} }
} }
}() }
return res.Emit(out) return nil
}, },
Encoders: refsEncoderMap, Encoders: refsEncoderMap,
Type: RefWrapper{}, Type: RefWrapper{},
...@@ -190,7 +182,7 @@ type RefWrapper struct { ...@@ -190,7 +182,7 @@ type RefWrapper struct {
} }
type RefWriter struct { type RefWriter struct {
out chan interface{} res cmds.ResponseEmitter
DAG ipld.DAGService DAG ipld.DAGService
Ctx context.Context Ctx context.Context
...@@ -337,6 +329,5 @@ func (rw *RefWriter) WriteEdge(from, to cid.Cid, linkname string) error { ...@@ -337,6 +329,5 @@ func (rw *RefWriter) WriteEdge(from, to cid.Cid, linkname string) error {
s += to.String() s += to.String()
} }
rw.out <- &RefWrapper{Ref: s} return rw.res.Emit(&RefWrapper{Ref: s})
return nil
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论