From 7ed11199a052b7264274f16403c28d87d8865f72 Mon Sep 17 00:00:00 2001 From: 4000D Date: Mon, 21 May 2018 20:04:47 +0900 Subject: [PATCH] eth/downloader: close queue after all fetchers finished --- eth/downloader/downloader.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/eth/downloader/downloader.go b/eth/downloader/downloader.go index dc23354929..be534e5ef6 100644 --- a/eth/downloader/downloader.go +++ b/eth/downloader/downloader.go @@ -486,13 +486,16 @@ func (d *Downloader) spawnSync(fetchers []func() error) error { // Wait for the first error, then terminate the others. var err error for i := 0; i < len(fetchers); i++ { + err = <-errc + if i == len(fetchers)-1 { // Close the queue when all fetchers have exited. // This will cause the block processor to end when // it has processed the queue. d.queue.Close() } - if err = <-errc; err != nil { + + if err != nil { break } }