p2p: fix unsynchronized map access during Server shutdown

removePeer can be called even after listenLoop and dialLoop have returned.
pull/704/head
Felix Lange 10 years ago
parent 995fab2ebc
commit b9929d289d
  1. 2
      p2p/server.go

@ -260,9 +260,11 @@ func (srv *Server) Stop() {
// No new peers can be added at this point because dialLoop and
// listenLoop are down. It is safe to call peerWG.Wait because
// peerWG.Add is not called outside of those loops.
srv.lock.Lock()
for _, peer := range srv.peers {
peer.Disconnect(DiscQuitting)
}
srv.lock.Unlock()
srv.peerWG.Wait()
}

Loading…
Cancel
Save