mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2025-01-18 13:57:34 +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.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)
|
s.bFetcherQueue = bqueue.New(chain, log, nil, s.NeoFSBlockFetcherCfg.BQueueSize, updateBlockQueueLenMetric, bqueue.Blocking)
|
||||||
var err error
|
var err error
|
||||||
s.blockFetcher, err = blockfetcher.New(chain, s.NeoFSBlockFetcherCfg, log, s.bFetcherQueue.PutBlock, func() {
|
s.blockFetcher, err = blockfetcher.New(chain, s.NeoFSBlockFetcherCfg, log, s.bFetcherQueue.PutBlock,
|
||||||
close(s.blockFetcherFin)
|
sync.OnceFunc(func() { close(s.blockFetcherFin) }))
|
||||||
})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to create NeoFS BlockFetcher: %w", err)
|
return nil, fmt.Errorf("failed to create NeoFS BlockFetcher: %w", err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue