From 31dc65b96b681c2565245a7c76d4b8e06e8fd88e Mon Sep 17 00:00:00 2001 From: Jeromy <jeromyj@gmail.com> Date: Fri, 1 Aug 2014 18:07:09 -0700 Subject: [PATCH] clean up after listeners on shutdown --- swarm/swarm.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/swarm/swarm.go b/swarm/swarm.go index 1ac277d0..d6cbcc72 100644 --- a/swarm/swarm.go +++ b/swarm/swarm.go @@ -81,6 +81,7 @@ type Swarm struct { connsLock sync.RWMutex local *peer.Peer + listeners []net.Listener } // NewSwarm constructs a Swarm, with a Chan. @@ -126,6 +127,9 @@ func (s *Swarm) connListen(maddr *ma.Multiaddr) error { return err } + // NOTE: this may require a lock around it later. currently, only run on setup + s.listeners = append(s.listeners, list) + // Accept and handle new connections on this listener until it errors go func() { for { @@ -172,6 +176,10 @@ func (s *Swarm) Close() { } s.Chan.Close <- true // fan out s.Chan.Close <- true // listener + + for _,list := range s.listeners { + list.Close() + } } // Dial connects to a peer. -- GitLab