diff --git a/frontend/udp/frontend.go b/frontend/udp/frontend.go index 1c0f32d..bc5b421 100644 --- a/frontend/udp/frontend.go +++ b/frontend/udp/frontend.go @@ -49,7 +49,6 @@ func (cfg Config) LogFields() log.Fields { // Frontend holds the state of a UDP BitTorrent Frontend. type Frontend struct { socket *net.UDPConn - m sync.Mutex closing chan struct{} wg sync.WaitGroup @@ -104,20 +103,10 @@ func (t *Frontend) Stop() stop.Result { c := make(stop.Channel) go func() { - t.m.Lock() - defer t.m.Unlock() - close(t.closing) - if t.socket != nil { - t.socket.SetReadDeadline(time.Now()) - } + t.socket.SetReadDeadline(time.Now()) t.wg.Wait() - - var err error - if t.socket != nil { - err = t.socket.Close() - } - c.Done(err) + c.Done(t.socket.Close()) }() return c.Result() @@ -131,9 +120,7 @@ func (t *Frontend) listenAndServe() error { return err } - t.m.Lock() t.socket, err = net.ListenUDP("udp", udpAddr) - t.m.Unlock() if err != nil { return err }