mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
swarm/network, swarm/pss: Simplify + correct lock in servicefunc sim
This commit is contained in:
parent
60030ff7e8
commit
e1a3dd53bf
2 changed files with 17 additions and 9 deletions
|
|
@ -85,6 +85,8 @@ func New(services map[string]ServiceFunc) (s *Simulation) {
|
||||||
name, serviceFunc := name, serviceFunc
|
name, serviceFunc := name, serviceFunc
|
||||||
s.serviceNames = append(s.serviceNames, name)
|
s.serviceNames = append(s.serviceNames, name)
|
||||||
adapterServices[name] = func(ctx *adapters.ServiceContext) (node.Service, error) {
|
adapterServices[name] = func(ctx *adapters.ServiceContext) (node.Service, error) {
|
||||||
|
s.mu.Lock()
|
||||||
|
defer s.mu.Unlock()
|
||||||
b, ok := s.buckets[ctx.Config.ID]
|
b, ok := s.buckets[ctx.Config.ID]
|
||||||
if !ok {
|
if !ok {
|
||||||
b = new(sync.Map)
|
b = new(sync.Map)
|
||||||
|
|
@ -93,8 +95,6 @@ func New(services map[string]ServiceFunc) (s *Simulation) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
s.mu.Lock()
|
|
||||||
defer s.mu.Unlock()
|
|
||||||
if cleanup != nil {
|
if cleanup != nil {
|
||||||
s.cleanupFuncs = append(s.cleanupFuncs, cleanup)
|
s.cleanupFuncs = append(s.cleanupFuncs, cleanup)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -145,17 +145,25 @@ func newTestData() *testData {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *testData) getKademlia(nodeId *enode.ID) (*network.Kademlia, error) {
|
||||||
|
kadif, ok := d.sim.NodeItem(*nodeId, simulation.BucketKeyKademlia)
|
||||||
|
if !ok {
|
||||||
|
return nil, fmt.Errorf("no kademlia entry for %v", nodeId)
|
||||||
|
}
|
||||||
|
kad, ok := kadif.(*network.Kademlia)
|
||||||
|
if !ok {
|
||||||
|
return nil, fmt.Errorf("invalid kademlia entry for %v", nodeId)
|
||||||
|
}
|
||||||
|
return kad, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (d *testData) init(msgCount int) error {
|
func (d *testData) init(msgCount int) error {
|
||||||
log.Debug("TestProxNetwork start")
|
log.Debug("TestProxNetwork start")
|
||||||
|
|
||||||
for _, nodeId := range d.sim.NodeIDs() {
|
for _, nodeId := range d.sim.NodeIDs() {
|
||||||
kadif, ok := d.sim.NodeItem(nodeId, simulation.BucketKeyKademlia)
|
kad, err := d.getKademlia(&nodeId)
|
||||||
if !ok {
|
if err != nil {
|
||||||
return fmt.Errorf("no kademlia entry for %v", nodeId)
|
return err
|
||||||
}
|
|
||||||
kad, ok := kadif.(*network.Kademlia)
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("invalid kademlia entry for %v", nodeId)
|
|
||||||
}
|
}
|
||||||
d.nodeAddrs[nodeId] = kad.BaseAddr()
|
d.nodeAddrs[nodeId] = kad.BaseAddr()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue