aboutsummaryrefslogtreecommitdiffstats
path: root/simulation/peer-server.go
diff options
context:
space:
mode:
Diffstat (limited to 'simulation/peer-server.go')
-rw-r--r--simulation/peer-server.go15
1 files changed, 10 insertions, 5 deletions
diff --git a/simulation/peer-server.go b/simulation/peer-server.go
index 43a1c2b..6567639 100644
--- a/simulation/peer-server.go
+++ b/simulation/peer-server.go
@@ -227,11 +227,16 @@ func (p *PeerServer) Run(configPath string) {
switch m.Type {
case shutdownAck:
- delete(p.peers, id)
- log.Printf("%v shutdown, %d remains.\n", id, len(p.peers))
- if len(p.peers) == 0 {
- stopServer <- struct{}{}
- }
+ func() {
+ p.peersMu.Lock()
+ defer p.peersMu.Unlock()
+
+ delete(p.peers, id)
+ log.Printf("%v shutdown, %d remains.\n", id, len(p.peers))
+ if len(p.peers) == 0 {
+ stopServer <- struct{}{}
+ }
+ }()
break
case blockTimestamp:
msgs := []TimestampMessage{}