fix(swarm): use the go fork/join idiom
License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
Steven Allen committed
Mar 18, 2019 at 18:58 UTC
f1b68880817f78f230f20368d144cbc970032748
1 file changed
+8
-15
core/commands/swarm.go
+8
-15
@@ -509,17 +509,6 @@ func resolveAddresses(ctx context.Context, addrs []string) ([]ma.Multiaddr, erro
509
resolveErrC := make(chan error, len(addrs))
510
511
maddrC := make(chan ma.Multiaddr)
512
- go func() {
513
- for {
514
- select {
515
- case maddr, ok := <-maddrC:
516
- if !ok {
517
- return
518
- }
519
- maddrs = append(maddrs, maddr)
520
- }
521
- }
522
- }()
512
513
for _, addr := range addrs {
514
maddr, err := ma.NewMultiaddr(addr)
@@ -553,10 +542,14 @@ func resolveAddresses(ctx context.Context, addrs []string) ([]ma.Multiaddr, erro
542
}
543
}(maddr)
544
}
556
- // wait for address resolving
557
- wg.Wait()
558
- // close the channel of collecting multiaddr
559
- close(maddrC)
545
+ go func() {
546
+ wg.Wait()
547
+ close(maddrC)
548
+ }()
549
+
550
+ for maddr := range maddrC {
551
+ maddrs = append(maddrs, maddr)
552
+ }
553
554
select {
555
case err := <-resolveErrC: