mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-03-07 03:45:02 +00:00
eth/fetcher: fix a closure data race
This commit is contained in:
parent
99ca4b619b
commit
3ce17d2862
1 changed files with 3 additions and 2 deletions
|
|
@ -281,12 +281,13 @@ func (f *Fetcher) loop() {
|
|||
|
||||
glog.V(logger.Detail).Infof("Peer %s: fetching %s", peer, list)
|
||||
}
|
||||
hashes := hashes // closure!
|
||||
// Create a closure of the fetch and schedule in on a new thread
|
||||
fetcher, hashes := f.fetching[hashes[0]].fetch, hashes
|
||||
go func() {
|
||||
if f.fetchingHook != nil {
|
||||
f.fetchingHook(hashes)
|
||||
}
|
||||
f.fetching[hashes[0]].fetch(hashes)
|
||||
fetcher(hashes)
|
||||
}()
|
||||
}
|
||||
// Schedule the next fetch if blocks are still pending
|
||||
|
|
|
|||
Loading…
Reference in a new issue