diff options
author | Janoš Guljaš <janos@users.noreply.github.com> | 2019-02-22 01:33:49 +0800 |
---|---|---|
committer | Viktor Trón <viktor.tron@gmail.com> | 2019-02-22 01:33:49 +0800 |
commit | 836c846812a903258f0612556481d96b3fa98758 (patch) | |
tree | 1550ebc0e241cbb3fa455cfb5e4ece92b69ffc73 /swarm/network/stream/syncer.go | |
parent | b9808e392f6bdf5a8e53487c982af40df073dc85 (diff) | |
download | go-tangerine-836c846812a903258f0612556481d96b3fa98758.tar.gz go-tangerine-836c846812a903258f0612556481d96b3fa98758.tar.zst go-tangerine-836c846812a903258f0612556481d96b3fa98758.zip |
swarm/network/master: protect SetNextBatch iterator after close (#19147)
Diffstat (limited to 'swarm/network/stream/syncer.go')
-rw-r--r-- | swarm/network/stream/syncer.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/swarm/network/stream/syncer.go b/swarm/network/stream/syncer.go index 4fb8b9342..5f03dcff7 100644 --- a/swarm/network/stream/syncer.go +++ b/swarm/network/stream/syncer.go @@ -107,6 +107,11 @@ func (s *SwarmSyncerServer) SetNextBatch(from, to uint64) ([]byte, uint64, uint6 metrics.GetOrRegisterCounter("syncer.setnextbatch.iterator", nil).Inc(1) err := s.store.Iterator(from, to, s.po, func(key storage.Address, idx uint64) bool { + select { + case <-s.quit: + return false + default: + } batch = append(batch, key[:]...) i++ to = idx |