提交 f1b68880 作者: Steven Allen

fix(swarm): use the go fork/join idiom

License: MIT
Signed-off-by: 's avatarSteven Allen <steven@stebalien.com>
上级 29161484
...@@ -509,17 +509,6 @@ func resolveAddresses(ctx context.Context, addrs []string) ([]ma.Multiaddr, erro ...@@ -509,17 +509,6 @@ func resolveAddresses(ctx context.Context, addrs []string) ([]ma.Multiaddr, erro
resolveErrC := make(chan error, len(addrs)) resolveErrC := make(chan error, len(addrs))
maddrC := make(chan ma.Multiaddr) maddrC := make(chan ma.Multiaddr)
go func() {
for {
select {
case maddr, ok := <-maddrC:
if !ok {
return
}
maddrs = append(maddrs, maddr)
}
}
}()
for _, addr := range addrs { for _, addr := range addrs {
maddr, err := ma.NewMultiaddr(addr) maddr, err := ma.NewMultiaddr(addr)
...@@ -553,10 +542,14 @@ func resolveAddresses(ctx context.Context, addrs []string) ([]ma.Multiaddr, erro ...@@ -553,10 +542,14 @@ func resolveAddresses(ctx context.Context, addrs []string) ([]ma.Multiaddr, erro
} }
}(maddr) }(maddr)
} }
// wait for address resolving go func() {
wg.Wait() wg.Wait()
// close the channel of collecting multiaddr
close(maddrC) close(maddrC)
}()
for maddr := range maddrC {
maddrs = append(maddrs, maddr)
}
select { select {
case err := <-resolveErrC: case err := <-resolveErrC:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论