@cryptotaxi247 / kubo / commits / bb236cf5a

cmds/refs: use emit directly

License: MIT Signed-off-by: Overbool <overbool.xu@gmail.com>

Overbool committed Nov 7, 2018 at 16:58 UTC bb236cf5ad189859a3fdda0f8fa8240daafdde37
1 file changed +16 -25
core/commands/refs.go
+16 -25
@@ -102,32 +102,24 @@ NOTE: List all references recursively by using the flag '-r'.
102 return err
103 }
104
105 - out := make(chan interface{})
106 -
107 - go func() {
108 - defer close(out)
109 -
110 - rw := RefWriter{
111 - out: out,
112 - DAG: n.DAG,
113 - Ctx: ctx,
114 - Unique: unique,
115 - PrintFmt: format,
116 - MaxDepth: maxDepth,
117 - }
105 + rw := RefWriter{
106 + res: res,
107 + DAG: n.DAG,
108 + Ctx: ctx,
109 + Unique: unique,
110 + PrintFmt: format,
111 + MaxDepth: maxDepth,
112 + }
113
119 - for _, o := range objs {
120 - if _, err := rw.WriteRefs(o); err != nil {
121 - select {
122 - case out <- &RefWrapper{Err: err.Error()}:
123 - case <-ctx.Done():
124 - }
125 - return
114 + for _, o := range objs {
115 + if _, err := rw.WriteRefs(o); err != nil {
116 + if err := res.Emit(&RefWrapper{Err: err.Error()}); err != nil {
117 + return err
118 }
119 }
128 - }()
120 + }
121
130 - return res.Emit(out)
122 + return nil
123 },
124 Encoders: refsEncoderMap,
125 Type: RefWrapper{},
@@ -190,7 +182,7 @@ type RefWrapper struct {
182 }
183
184 type RefWriter struct {
193 - out chan interface{}
185 + res cmds.ResponseEmitter
186 DAG ipld.DAGService
187 Ctx context.Context
188
@@ -337,6 +329,5 @@ func (rw *RefWriter) WriteEdge(from, to cid.Cid, linkname string) error {
329 s += to.String()
330 }
331
340 - rw.out <- &RefWrapper{Ref: s}
341 - return nil
332 + return rw.res.Emit(&RefWrapper{Ref: s})
333 }