mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2025-01-03 09:22:49 +00:00
network: avoid accidental double-close of blockFetcherFin channel
It's not supposed to happen, but if blockfetcher goes wild and calls this twice it can ruin the system, so better safe than sorry. Signed-off-by: Roman Khimov <roman@nspcc.ru>
This commit is contained in:
parent
c812150d83
commit
109319d220
1 changed files with 2 additions and 3 deletions
|
@ -226,9 +226,8 @@ func newServerFromConstructors(config ServerConfig, chain Ledger, stSync StateSy
|
|||
s.bSyncQueue = bqueue.New(s.stateSync, log, nil, bqueue.DefaultCacheSize, updateBlockQueueLenMetric, bqueue.NonBlocking)
|
||||
s.bFetcherQueue = bqueue.New(chain, log, nil, s.NeoFSBlockFetcherCfg.BQueueSize, updateBlockQueueLenMetric, bqueue.Blocking)
|
||||
var err error
|
||||
s.blockFetcher, err = blockfetcher.New(chain, s.NeoFSBlockFetcherCfg, log, s.bFetcherQueue.PutBlock, func() {
|
||||
close(s.blockFetcherFin)
|
||||
})
|
||||
s.blockFetcher, err = blockfetcher.New(chain, s.NeoFSBlockFetcherCfg, log, s.bFetcherQueue.PutBlock,
|
||||
sync.OnceFunc(func() { close(s.blockFetcherFin) }))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create NeoFS BlockFetcher: %w", err)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue