提交 bb236cf5 作者: Overbool

cmds/refs: use emit directly

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