mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
swarm/network: fix data race in newBzzBaseTesterWithAddrs
This commit is contained in:
parent
9b5b561d65
commit
67c06d9a96
1 changed files with 5 additions and 0 deletions
|
|
@ -86,9 +86,12 @@ func newBzzBaseTester(n int, prvkey *ecdsa.PrivateKey, spec *protocols.Spec, run
|
||||||
func newBzzBaseTesterWithAddrs(prvkey *ecdsa.PrivateKey, addrs [][]byte, spec *protocols.Spec, run func(*BzzPeer) error) (*bzzTester, [][]byte, error) {
|
func newBzzBaseTesterWithAddrs(prvkey *ecdsa.PrivateKey, addrs [][]byte, spec *protocols.Spec, run func(*BzzPeer) error) (*bzzTester, [][]byte, error) {
|
||||||
n := len(addrs)
|
n := len(addrs)
|
||||||
cs := make(map[enode.ID]chan bool)
|
cs := make(map[enode.ID]chan bool)
|
||||||
|
var csMu sync.Mutex
|
||||||
|
|
||||||
srv := func(p *BzzPeer) error {
|
srv := func(p *BzzPeer) error {
|
||||||
defer func() {
|
defer func() {
|
||||||
|
csMu.Lock()
|
||||||
|
defer csMu.Unlock()
|
||||||
if cs[p.ID()] != nil {
|
if cs[p.ID()] != nil {
|
||||||
close(cs[p.ID()])
|
close(cs[p.ID()])
|
||||||
}
|
}
|
||||||
|
|
@ -120,10 +123,12 @@ func newBzzBaseTesterWithAddrs(prvkey *ecdsa.PrivateKey, addrs [][]byte, spec *p
|
||||||
}
|
}
|
||||||
addr := getENRBzzAddr(nod)
|
addr := getENRBzzAddr(nod)
|
||||||
|
|
||||||
|
csMu.Lock()
|
||||||
for _, node := range s.Nodes {
|
for _, node := range s.Nodes {
|
||||||
log.Warn("node", "node", node)
|
log.Warn("node", "node", node)
|
||||||
cs[node.ID()] = make(chan bool)
|
cs[node.ID()] = make(chan bool)
|
||||||
}
|
}
|
||||||
|
csMu.Unlock()
|
||||||
|
|
||||||
var nodeAddrs [][]byte
|
var nodeAddrs [][]byte
|
||||||
pt := &bzzTester{
|
pt := &bzzTester{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue