@cryptotaxi247 / kubo / commits / 1e7149cd0

commands/pin: fix gofmt and block

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

Overbool committed Oct 27, 2018 at 12:57 UTC 1e7149cd00c3268a8a17019981d40609f433e556
1 file changed +33 -21
core/commands/pin.go
+33 -21
@@ -90,7 +90,6 @@ var addPinCmd = &cmds.Command{
90 }
91
92 out := make(chan interface{})
93 - res.Emit(out)
93
94 v := new(dag.ProgressTracker)
95 ctx := v.DeriveContext(req.Context)
@@ -105,30 +104,43 @@ var addPinCmd = &cmds.Command{
104 ch <- pinResult{pins: added, err: err}
105 }()
106
108 - ticker := time.NewTicker(500 * time.Millisecond)
109 - defer ticker.Stop()
110 - defer close(out)
111 - for {
112 - select {
113 - case val := <-ch:
114 - if val.err != nil {
115 - return val.err
116 - }
107 + errC := make(chan error)
108 + go func() {
109 + var err error
110 + ticker := time.NewTicker(500 * time.Millisecond)
111 + defer ticker.Stop()
112 + defer func() { errC <- err }()
113 + defer close(out)
114
118 - if pv := v.Value(); pv != 0 {
115 + for {
116 + select {
117 + case val := <-ch:
118 + if val.err != nil {
119 + err = val.err
120 + return
121 + }
122 +
123 + if pv := v.Value(); pv != 0 {
124 + out <- &AddPinOutput{Progress: v.Value()}
125 + }
126 + out <- &AddPinOutput{Pins: cidsToStrings(val.pins)}
127 + return
128 + case <-ticker.C:
129 out <- &AddPinOutput{Progress: v.Value()}
130 + case <-ctx.Done():
131 + log.Error(ctx.Err())
132 + err = ctx.Err()
133 + return
134 }
121 - out <- &AddPinOutput{Pins: cidsToStrings(val.pins)}
122 - return nil
123 - case <-ticker.C:
124 - out <- &AddPinOutput{Progress: v.Value()}
125 - case <-ctx.Done():
126 - log.Error(ctx.Err())
127 - return ctx.Err()
135 }
136 + }()
137 +
138 + err = res.Emit(out)
139 + if err != nil {
140 + return err
141 }
142
131 - return nil
143 + return <-errC
144 },
145 Encoders: cmds.EncoderMap{
146 cmds.Text: cmds.MakeTypedEncoder(func(req *cmds.Request, w io.Writer, out *AddPinOutput) error {
@@ -294,9 +306,9 @@ Example:
306
307 if err != nil {
308 return err
297 - } else {
298 - return res.Emit(&RefKeyList{Keys: keys})
309 }
310 +
311 + return res.Emit(&RefKeyList{Keys: keys})
312 },
313 Type: RefKeyList{},
314 Encoders: cmds.EncoderMap{