good morning!!!!

Skip to content
Snippets Groups Projects
Commit b9929d28 authored by Felix Lange's avatar Felix Lange
Browse files

p2p: fix unsynchronized map access during Server shutdown

removePeer can be called even after listenLoop and dialLoop have returned.
parent 995fab2e
No related branches found
No related tags found
No related merge requests found
...@@ -260,9 +260,11 @@ func (srv *Server) Stop() { ...@@ -260,9 +260,11 @@ func (srv *Server) Stop() {
// No new peers can be added at this point because dialLoop and // No new peers can be added at this point because dialLoop and
// listenLoop are down. It is safe to call peerWG.Wait because // listenLoop are down. It is safe to call peerWG.Wait because
// peerWG.Add is not called outside of those loops. // peerWG.Add is not called outside of those loops.
srv.lock.Lock()
for _, peer := range srv.peers { for _, peer := range srv.peers {
peer.Disconnect(DiscQuitting) peer.Disconnect(DiscQuitting)
} }
srv.lock.Unlock()
srv.peerWG.Wait() srv.peerWG.Wait()
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment